


<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    
    <meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />
    <title>Coverage for dcase_framework/parameters.py: 69%</title>
    <link rel="stylesheet" href="style.css" type="text/css">
    
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="jquery.hotkeys.js"></script>
    <script type="text/javascript" src="jquery.isonscreen.js"></script>
    <script type="text/javascript" src="coverage_html.js"></script>
    <script type="text/javascript">
        jQuery(document).ready(coverage.pyfile_ready);
    </script>
</head>
<body class="pyfile">

<div id="header">
    <div class="content">
        <h1>Coverage for <b>dcase_framework/parameters.py</b> :
            <span class="pc_cov">69%</span>
        </h1>

        <img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />

        <h2 class="stats">
            418 statements &nbsp;
            <span class="run hide_run shortkey_r button_toggle_run">290 run</span>
            <span class="mis shortkey_m button_toggle_mis">128 missing</span>
            <span class="exc shortkey_x button_toggle_exc">0 excluded</span>

            
        </h2>
    </div>
</div>

<div class="help_panel">
    <img id="panel_icon" src="keybd_open.png" alt="Hide keyboard shortcuts" />
    <p class="legend">Hot-keys on this page</p>
    <div>
    <p class="keyhelp">
        <span class="key">r</span>
        <span class="key">m</span>
        <span class="key">x</span>
        <span class="key">p</span> &nbsp; toggle line displays
    </p>
    <p class="keyhelp">
        <span class="key">j</span>
        <span class="key">k</span> &nbsp; next/prev highlighted chunk
    </p>
    <p class="keyhelp">
        <span class="key">0</span> &nbsp; (zero) top of page
    </p>
    <p class="keyhelp">
        <span class="key">1</span> &nbsp; (one) first highlighted chunk
    </p>
    </div>
</div>

<div id="source">
    <table>
        <tr>
            <td class="linenos">
<p id="n1" class="pln"><a href="#n1">1</a></p>
<p id="n2" class="pln"><a href="#n2">2</a></p>
<p id="n3" class="stm run hide_run"><a href="#n3">3</a></p>
<p id="n4" class="pln"><a href="#n4">4</a></p>
<p id="n5" class="pln"><a href="#n5">5</a></p>
<p id="n6" class="pln"><a href="#n6">6</a></p>
<p id="n7" class="pln"><a href="#n7">7</a></p>
<p id="n8" class="pln"><a href="#n8">8</a></p>
<p id="n9" class="pln"><a href="#n9">9</a></p>
<p id="n10" class="pln"><a href="#n10">10</a></p>
<p id="n11" class="pln"><a href="#n11">11</a></p>
<p id="n12" class="pln"><a href="#n12">12</a></p>
<p id="n13" class="pln"><a href="#n13">13</a></p>
<p id="n14" class="pln"><a href="#n14">14</a></p>
<p id="n15" class="pln"><a href="#n15">15</a></p>
<p id="n16" class="pln"><a href="#n16">16</a></p>
<p id="n17" class="pln"><a href="#n17">17</a></p>
<p id="n18" class="pln"><a href="#n18">18</a></p>
<p id="n19" class="pln"><a href="#n19">19</a></p>
<p id="n20" class="pln"><a href="#n20">20</a></p>
<p id="n21" class="pln"><a href="#n21">21</a></p>
<p id="n22" class="pln"><a href="#n22">22</a></p>
<p id="n23" class="pln"><a href="#n23">23</a></p>
<p id="n24" class="pln"><a href="#n24">24</a></p>
<p id="n25" class="pln"><a href="#n25">25</a></p>
<p id="n26" class="pln"><a href="#n26">26</a></p>
<p id="n27" class="pln"><a href="#n27">27</a></p>
<p id="n28" class="pln"><a href="#n28">28</a></p>
<p id="n29" class="pln"><a href="#n29">29</a></p>
<p id="n30" class="pln"><a href="#n30">30</a></p>
<p id="n31" class="pln"><a href="#n31">31</a></p>
<p id="n32" class="pln"><a href="#n32">32</a></p>
<p id="n33" class="pln"><a href="#n33">33</a></p>
<p id="n34" class="pln"><a href="#n34">34</a></p>
<p id="n35" class="pln"><a href="#n35">35</a></p>
<p id="n36" class="pln"><a href="#n36">36</a></p>
<p id="n37" class="pln"><a href="#n37">37</a></p>
<p id="n38" class="pln"><a href="#n38">38</a></p>
<p id="n39" class="pln"><a href="#n39">39</a></p>
<p id="n40" class="pln"><a href="#n40">40</a></p>
<p id="n41" class="pln"><a href="#n41">41</a></p>
<p id="n42" class="pln"><a href="#n42">42</a></p>
<p id="n43" class="pln"><a href="#n43">43</a></p>
<p id="n44" class="pln"><a href="#n44">44</a></p>
<p id="n45" class="pln"><a href="#n45">45</a></p>
<p id="n46" class="pln"><a href="#n46">46</a></p>
<p id="n47" class="pln"><a href="#n47">47</a></p>
<p id="n48" class="pln"><a href="#n48">48</a></p>
<p id="n49" class="pln"><a href="#n49">49</a></p>
<p id="n50" class="pln"><a href="#n50">50</a></p>
<p id="n51" class="pln"><a href="#n51">51</a></p>
<p id="n52" class="pln"><a href="#n52">52</a></p>
<p id="n53" class="pln"><a href="#n53">53</a></p>
<p id="n54" class="pln"><a href="#n54">54</a></p>
<p id="n55" class="pln"><a href="#n55">55</a></p>
<p id="n56" class="pln"><a href="#n56">56</a></p>
<p id="n57" class="pln"><a href="#n57">57</a></p>
<p id="n58" class="pln"><a href="#n58">58</a></p>
<p id="n59" class="pln"><a href="#n59">59</a></p>
<p id="n60" class="pln"><a href="#n60">60</a></p>
<p id="n61" class="pln"><a href="#n61">61</a></p>
<p id="n62" class="pln"><a href="#n62">62</a></p>
<p id="n63" class="pln"><a href="#n63">63</a></p>
<p id="n64" class="pln"><a href="#n64">64</a></p>
<p id="n65" class="pln"><a href="#n65">65</a></p>
<p id="n66" class="pln"><a href="#n66">66</a></p>
<p id="n67" class="pln"><a href="#n67">67</a></p>
<p id="n68" class="pln"><a href="#n68">68</a></p>
<p id="n69" class="pln"><a href="#n69">69</a></p>
<p id="n70" class="pln"><a href="#n70">70</a></p>
<p id="n71" class="pln"><a href="#n71">71</a></p>
<p id="n72" class="pln"><a href="#n72">72</a></p>
<p id="n73" class="pln"><a href="#n73">73</a></p>
<p id="n74" class="pln"><a href="#n74">74</a></p>
<p id="n75" class="pln"><a href="#n75">75</a></p>
<p id="n76" class="pln"><a href="#n76">76</a></p>
<p id="n77" class="pln"><a href="#n77">77</a></p>
<p id="n78" class="pln"><a href="#n78">78</a></p>
<p id="n79" class="pln"><a href="#n79">79</a></p>
<p id="n80" class="pln"><a href="#n80">80</a></p>
<p id="n81" class="pln"><a href="#n81">81</a></p>
<p id="n82" class="pln"><a href="#n82">82</a></p>
<p id="n83" class="pln"><a href="#n83">83</a></p>
<p id="n84" class="pln"><a href="#n84">84</a></p>
<p id="n85" class="pln"><a href="#n85">85</a></p>
<p id="n86" class="pln"><a href="#n86">86</a></p>
<p id="n87" class="pln"><a href="#n87">87</a></p>
<p id="n88" class="pln"><a href="#n88">88</a></p>
<p id="n89" class="pln"><a href="#n89">89</a></p>
<p id="n90" class="pln"><a href="#n90">90</a></p>
<p id="n91" class="pln"><a href="#n91">91</a></p>
<p id="n92" class="pln"><a href="#n92">92</a></p>
<p id="n93" class="pln"><a href="#n93">93</a></p>
<p id="n94" class="pln"><a href="#n94">94</a></p>
<p id="n95" class="pln"><a href="#n95">95</a></p>
<p id="n96" class="pln"><a href="#n96">96</a></p>
<p id="n97" class="pln"><a href="#n97">97</a></p>
<p id="n98" class="pln"><a href="#n98">98</a></p>
<p id="n99" class="pln"><a href="#n99">99</a></p>
<p id="n100" class="pln"><a href="#n100">100</a></p>
<p id="n101" class="pln"><a href="#n101">101</a></p>
<p id="n102" class="pln"><a href="#n102">102</a></p>
<p id="n103" class="pln"><a href="#n103">103</a></p>
<p id="n104" class="pln"><a href="#n104">104</a></p>
<p id="n105" class="pln"><a href="#n105">105</a></p>
<p id="n106" class="pln"><a href="#n106">106</a></p>
<p id="n107" class="pln"><a href="#n107">107</a></p>
<p id="n108" class="pln"><a href="#n108">108</a></p>
<p id="n109" class="pln"><a href="#n109">109</a></p>
<p id="n110" class="pln"><a href="#n110">110</a></p>
<p id="n111" class="pln"><a href="#n111">111</a></p>
<p id="n112" class="pln"><a href="#n112">112</a></p>
<p id="n113" class="pln"><a href="#n113">113</a></p>
<p id="n114" class="pln"><a href="#n114">114</a></p>
<p id="n115" class="pln"><a href="#n115">115</a></p>
<p id="n116" class="pln"><a href="#n116">116</a></p>
<p id="n117" class="pln"><a href="#n117">117</a></p>
<p id="n118" class="pln"><a href="#n118">118</a></p>
<p id="n119" class="pln"><a href="#n119">119</a></p>
<p id="n120" class="pln"><a href="#n120">120</a></p>
<p id="n121" class="pln"><a href="#n121">121</a></p>
<p id="n122" class="pln"><a href="#n122">122</a></p>
<p id="n123" class="pln"><a href="#n123">123</a></p>
<p id="n124" class="pln"><a href="#n124">124</a></p>
<p id="n125" class="pln"><a href="#n125">125</a></p>
<p id="n126" class="pln"><a href="#n126">126</a></p>
<p id="n127" class="pln"><a href="#n127">127</a></p>
<p id="n128" class="pln"><a href="#n128">128</a></p>
<p id="n129" class="pln"><a href="#n129">129</a></p>
<p id="n130" class="pln"><a href="#n130">130</a></p>
<p id="n131" class="pln"><a href="#n131">131</a></p>
<p id="n132" class="pln"><a href="#n132">132</a></p>
<p id="n133" class="pln"><a href="#n133">133</a></p>
<p id="n134" class="pln"><a href="#n134">134</a></p>
<p id="n135" class="pln"><a href="#n135">135</a></p>
<p id="n136" class="pln"><a href="#n136">136</a></p>
<p id="n137" class="pln"><a href="#n137">137</a></p>
<p id="n138" class="pln"><a href="#n138">138</a></p>
<p id="n139" class="pln"><a href="#n139">139</a></p>
<p id="n140" class="pln"><a href="#n140">140</a></p>
<p id="n141" class="pln"><a href="#n141">141</a></p>
<p id="n142" class="pln"><a href="#n142">142</a></p>
<p id="n143" class="pln"><a href="#n143">143</a></p>
<p id="n144" class="pln"><a href="#n144">144</a></p>
<p id="n145" class="pln"><a href="#n145">145</a></p>
<p id="n146" class="pln"><a href="#n146">146</a></p>
<p id="n147" class="pln"><a href="#n147">147</a></p>
<p id="n148" class="pln"><a href="#n148">148</a></p>
<p id="n149" class="pln"><a href="#n149">149</a></p>
<p id="n150" class="pln"><a href="#n150">150</a></p>
<p id="n151" class="pln"><a href="#n151">151</a></p>
<p id="n152" class="pln"><a href="#n152">152</a></p>
<p id="n153" class="pln"><a href="#n153">153</a></p>
<p id="n154" class="pln"><a href="#n154">154</a></p>
<p id="n155" class="pln"><a href="#n155">155</a></p>
<p id="n156" class="pln"><a href="#n156">156</a></p>
<p id="n157" class="pln"><a href="#n157">157</a></p>
<p id="n158" class="pln"><a href="#n158">158</a></p>
<p id="n159" class="pln"><a href="#n159">159</a></p>
<p id="n160" class="pln"><a href="#n160">160</a></p>
<p id="n161" class="pln"><a href="#n161">161</a></p>
<p id="n162" class="pln"><a href="#n162">162</a></p>
<p id="n163" class="pln"><a href="#n163">163</a></p>
<p id="n164" class="pln"><a href="#n164">164</a></p>
<p id="n165" class="pln"><a href="#n165">165</a></p>
<p id="n166" class="pln"><a href="#n166">166</a></p>
<p id="n167" class="pln"><a href="#n167">167</a></p>
<p id="n168" class="pln"><a href="#n168">168</a></p>
<p id="n169" class="pln"><a href="#n169">169</a></p>
<p id="n170" class="pln"><a href="#n170">170</a></p>
<p id="n171" class="pln"><a href="#n171">171</a></p>
<p id="n172" class="pln"><a href="#n172">172</a></p>
<p id="n173" class="pln"><a href="#n173">173</a></p>
<p id="n174" class="pln"><a href="#n174">174</a></p>
<p id="n175" class="pln"><a href="#n175">175</a></p>
<p id="n176" class="pln"><a href="#n176">176</a></p>
<p id="n177" class="pln"><a href="#n177">177</a></p>
<p id="n178" class="pln"><a href="#n178">178</a></p>
<p id="n179" class="pln"><a href="#n179">179</a></p>
<p id="n180" class="pln"><a href="#n180">180</a></p>
<p id="n181" class="pln"><a href="#n181">181</a></p>
<p id="n182" class="pln"><a href="#n182">182</a></p>
<p id="n183" class="pln"><a href="#n183">183</a></p>
<p id="n184" class="pln"><a href="#n184">184</a></p>
<p id="n185" class="pln"><a href="#n185">185</a></p>
<p id="n186" class="pln"><a href="#n186">186</a></p>
<p id="n187" class="pln"><a href="#n187">187</a></p>
<p id="n188" class="pln"><a href="#n188">188</a></p>
<p id="n189" class="pln"><a href="#n189">189</a></p>
<p id="n190" class="pln"><a href="#n190">190</a></p>
<p id="n191" class="pln"><a href="#n191">191</a></p>
<p id="n192" class="pln"><a href="#n192">192</a></p>
<p id="n193" class="pln"><a href="#n193">193</a></p>
<p id="n194" class="pln"><a href="#n194">194</a></p>
<p id="n195" class="pln"><a href="#n195">195</a></p>
<p id="n196" class="pln"><a href="#n196">196</a></p>
<p id="n197" class="pln"><a href="#n197">197</a></p>
<p id="n198" class="pln"><a href="#n198">198</a></p>
<p id="n199" class="pln"><a href="#n199">199</a></p>
<p id="n200" class="pln"><a href="#n200">200</a></p>
<p id="n201" class="pln"><a href="#n201">201</a></p>
<p id="n202" class="pln"><a href="#n202">202</a></p>
<p id="n203" class="pln"><a href="#n203">203</a></p>
<p id="n204" class="pln"><a href="#n204">204</a></p>
<p id="n205" class="pln"><a href="#n205">205</a></p>
<p id="n206" class="pln"><a href="#n206">206</a></p>
<p id="n207" class="pln"><a href="#n207">207</a></p>
<p id="n208" class="pln"><a href="#n208">208</a></p>
<p id="n209" class="pln"><a href="#n209">209</a></p>
<p id="n210" class="pln"><a href="#n210">210</a></p>
<p id="n211" class="pln"><a href="#n211">211</a></p>
<p id="n212" class="pln"><a href="#n212">212</a></p>
<p id="n213" class="pln"><a href="#n213">213</a></p>
<p id="n214" class="pln"><a href="#n214">214</a></p>
<p id="n215" class="pln"><a href="#n215">215</a></p>
<p id="n216" class="pln"><a href="#n216">216</a></p>
<p id="n217" class="pln"><a href="#n217">217</a></p>
<p id="n218" class="pln"><a href="#n218">218</a></p>
<p id="n219" class="pln"><a href="#n219">219</a></p>
<p id="n220" class="stm run hide_run"><a href="#n220">220</a></p>
<p id="n221" class="stm run hide_run"><a href="#n221">221</a></p>
<p id="n222" class="pln"><a href="#n222">222</a></p>
<p id="n223" class="stm run hide_run"><a href="#n223">223</a></p>
<p id="n224" class="stm run hide_run"><a href="#n224">224</a></p>
<p id="n225" class="stm run hide_run"><a href="#n225">225</a></p>
<p id="n226" class="stm run hide_run"><a href="#n226">226</a></p>
<p id="n227" class="stm run hide_run"><a href="#n227">227</a></p>
<p id="n228" class="stm run hide_run"><a href="#n228">228</a></p>
<p id="n229" class="stm run hide_run"><a href="#n229">229</a></p>
<p id="n230" class="pln"><a href="#n230">230</a></p>
<p id="n231" class="stm run hide_run"><a href="#n231">231</a></p>
<p id="n232" class="stm run hide_run"><a href="#n232">232</a></p>
<p id="n233" class="pln"><a href="#n233">233</a></p>
<p id="n234" class="pln"><a href="#n234">234</a></p>
<p id="n235" class="stm run hide_run"><a href="#n235">235</a></p>
<p id="n236" class="stm run hide_run"><a href="#n236">236</a></p>
<p id="n237" class="pln"><a href="#n237">237</a></p>
<p id="n238" class="pln"><a href="#n238">238</a></p>
<p id="n239" class="pln"><a href="#n239">239</a></p>
<p id="n240" class="pln"><a href="#n240">240</a></p>
<p id="n241" class="pln"><a href="#n241">241</a></p>
<p id="n242" class="pln"><a href="#n242">242</a></p>
<p id="n243" class="pln"><a href="#n243">243</a></p>
<p id="n244" class="pln"><a href="#n244">244</a></p>
<p id="n245" class="pln"><a href="#n245">245</a></p>
<p id="n246" class="pln"><a href="#n246">246</a></p>
<p id="n247" class="pln"><a href="#n247">247</a></p>
<p id="n248" class="pln"><a href="#n248">248</a></p>
<p id="n249" class="pln"><a href="#n249">249</a></p>
<p id="n250" class="pln"><a href="#n250">250</a></p>
<p id="n251" class="pln"><a href="#n251">251</a></p>
<p id="n252" class="pln"><a href="#n252">252</a></p>
<p id="n253" class="pln"><a href="#n253">253</a></p>
<p id="n254" class="pln"><a href="#n254">254</a></p>
<p id="n255" class="pln"><a href="#n255">255</a></p>
<p id="n256" class="pln"><a href="#n256">256</a></p>
<p id="n257" class="pln"><a href="#n257">257</a></p>
<p id="n258" class="pln"><a href="#n258">258</a></p>
<p id="n259" class="pln"><a href="#n259">259</a></p>
<p id="n260" class="pln"><a href="#n260">260</a></p>
<p id="n261" class="pln"><a href="#n261">261</a></p>
<p id="n262" class="pln"><a href="#n262">262</a></p>
<p id="n263" class="pln"><a href="#n263">263</a></p>
<p id="n264" class="pln"><a href="#n264">264</a></p>
<p id="n265" class="pln"><a href="#n265">265</a></p>
<p id="n266" class="stm run hide_run"><a href="#n266">266</a></p>
<p id="n267" class="pln"><a href="#n267">267</a></p>
<p id="n268" class="pln"><a href="#n268">268</a></p>
<p id="n269" class="stm run hide_run"><a href="#n269">269</a></p>
<p id="n270" class="pln"><a href="#n270">270</a></p>
<p id="n271" class="pln"><a href="#n271">271</a></p>
<p id="n272" class="stm run hide_run"><a href="#n272">272</a></p>
<p id="n273" class="stm mis"><a href="#n273">273</a></p>
<p id="n274" class="pln"><a href="#n274">274</a></p>
<p id="n275" class="stm run hide_run"><a href="#n275">275</a></p>
<p id="n276" class="stm run hide_run"><a href="#n276">276</a></p>
<p id="n277" class="pln"><a href="#n277">277</a></p>
<p id="n278" class="stm mis"><a href="#n278">278</a></p>
<p id="n279" class="pln"><a href="#n279">279</a></p>
<p id="n280" class="pln"><a href="#n280">280</a></p>
<p id="n281" class="stm run hide_run"><a href="#n281">281</a></p>
<p id="n282" class="pln"><a href="#n282">282</a></p>
<p id="n283" class="pln"><a href="#n283">283</a></p>
<p id="n284" class="pln"><a href="#n284">284</a></p>
<p id="n285" class="pln"><a href="#n285">285</a></p>
<p id="n286" class="pln"><a href="#n286">286</a></p>
<p id="n287" class="pln"><a href="#n287">287</a></p>
<p id="n288" class="pln"><a href="#n288">288</a></p>
<p id="n289" class="pln"><a href="#n289">289</a></p>
<p id="n290" class="pln"><a href="#n290">290</a></p>
<p id="n291" class="pln"><a href="#n291">291</a></p>
<p id="n292" class="pln"><a href="#n292">292</a></p>
<p id="n293" class="pln"><a href="#n293">293</a></p>
<p id="n294" class="pln"><a href="#n294">294</a></p>
<p id="n295" class="pln"><a href="#n295">295</a></p>
<p id="n296" class="pln"><a href="#n296">296</a></p>
<p id="n297" class="pln"><a href="#n297">297</a></p>
<p id="n298" class="pln"><a href="#n298">298</a></p>
<p id="n299" class="pln"><a href="#n299">299</a></p>
<p id="n300" class="pln"><a href="#n300">300</a></p>
<p id="n301" class="pln"><a href="#n301">301</a></p>
<p id="n302" class="stm run hide_run"><a href="#n302">302</a></p>
<p id="n303" class="stm mis"><a href="#n303">303</a></p>
<p id="n304" class="pln"><a href="#n304">304</a></p>
<p id="n305" class="pln"><a href="#n305">305</a></p>
<p id="n306" class="stm run hide_run"><a href="#n306">306</a></p>
<p id="n307" class="pln"><a href="#n307">307</a></p>
<p id="n308" class="pln"><a href="#n308">308</a></p>
<p id="n309" class="pln"><a href="#n309">309</a></p>
<p id="n310" class="pln"><a href="#n310">310</a></p>
<p id="n311" class="pln"><a href="#n311">311</a></p>
<p id="n312" class="pln"><a href="#n312">312</a></p>
<p id="n313" class="pln"><a href="#n313">313</a></p>
<p id="n314" class="pln"><a href="#n314">314</a></p>
<p id="n315" class="pln"><a href="#n315">315</a></p>
<p id="n316" class="pln"><a href="#n316">316</a></p>
<p id="n317" class="pln"><a href="#n317">317</a></p>
<p id="n318" class="pln"><a href="#n318">318</a></p>
<p id="n319" class="pln"><a href="#n319">319</a></p>
<p id="n320" class="pln"><a href="#n320">320</a></p>
<p id="n321" class="pln"><a href="#n321">321</a></p>
<p id="n322" class="pln"><a href="#n322">322</a></p>
<p id="n323" class="pln"><a href="#n323">323</a></p>
<p id="n324" class="pln"><a href="#n324">324</a></p>
<p id="n325" class="pln"><a href="#n325">325</a></p>
<p id="n326" class="pln"><a href="#n326">326</a></p>
<p id="n327" class="pln"><a href="#n327">327</a></p>
<p id="n328" class="pln"><a href="#n328">328</a></p>
<p id="n329" class="pln"><a href="#n329">329</a></p>
<p id="n330" class="pln"><a href="#n330">330</a></p>
<p id="n331" class="stm run hide_run"><a href="#n331">331</a></p>
<p id="n332" class="stm mis"><a href="#n332">332</a></p>
<p id="n333" class="pln"><a href="#n333">333</a></p>
<p id="n334" class="pln"><a href="#n334">334</a></p>
<p id="n335" class="stm run hide_run"><a href="#n335">335</a></p>
<p id="n336" class="pln"><a href="#n336">336</a></p>
<p id="n337" class="pln"><a href="#n337">337</a></p>
<p id="n338" class="pln"><a href="#n338">338</a></p>
<p id="n339" class="pln"><a href="#n339">339</a></p>
<p id="n340" class="pln"><a href="#n340">340</a></p>
<p id="n341" class="pln"><a href="#n341">341</a></p>
<p id="n342" class="pln"><a href="#n342">342</a></p>
<p id="n343" class="stm run hide_run"><a href="#n343">343</a></p>
<p id="n344" class="stm mis"><a href="#n344">344</a></p>
<p id="n345" class="pln"><a href="#n345">345</a></p>
<p id="n346" class="pln"><a href="#n346">346</a></p>
<p id="n347" class="stm run hide_run"><a href="#n347">347</a></p>
<p id="n348" class="pln"><a href="#n348">348</a></p>
<p id="n349" class="pln"><a href="#n349">349</a></p>
<p id="n350" class="pln"><a href="#n350">350</a></p>
<p id="n351" class="pln"><a href="#n351">351</a></p>
<p id="n352" class="pln"><a href="#n352">352</a></p>
<p id="n353" class="pln"><a href="#n353">353</a></p>
<p id="n354" class="pln"><a href="#n354">354</a></p>
<p id="n355" class="pln"><a href="#n355">355</a></p>
<p id="n356" class="pln"><a href="#n356">356</a></p>
<p id="n357" class="pln"><a href="#n357">357</a></p>
<p id="n358" class="pln"><a href="#n358">358</a></p>
<p id="n359" class="pln"><a href="#n359">359</a></p>
<p id="n360" class="pln"><a href="#n360">360</a></p>
<p id="n361" class="stm run hide_run"><a href="#n361">361</a></p>
<p id="n362" class="stm mis"><a href="#n362">362</a></p>
<p id="n363" class="pln"><a href="#n363">363</a></p>
<p id="n364" class="pln"><a href="#n364">364</a></p>
<p id="n365" class="stm run hide_run"><a href="#n365">365</a></p>
<p id="n366" class="pln"><a href="#n366">366</a></p>
<p id="n367" class="pln"><a href="#n367">367</a></p>
<p id="n368" class="pln"><a href="#n368">368</a></p>
<p id="n369" class="pln"><a href="#n369">369</a></p>
<p id="n370" class="pln"><a href="#n370">370</a></p>
<p id="n371" class="pln"><a href="#n371">371</a></p>
<p id="n372" class="pln"><a href="#n372">372</a></p>
<p id="n373" class="pln"><a href="#n373">373</a></p>
<p id="n374" class="pln"><a href="#n374">374</a></p>
<p id="n375" class="pln"><a href="#n375">375</a></p>
<p id="n376" class="pln"><a href="#n376">376</a></p>
<p id="n377" class="pln"><a href="#n377">377</a></p>
<p id="n378" class="pln"><a href="#n378">378</a></p>
<p id="n379" class="pln"><a href="#n379">379</a></p>
<p id="n380" class="pln"><a href="#n380">380</a></p>
<p id="n381" class="stm run hide_run"><a href="#n381">381</a></p>
<p id="n382" class="stm mis"><a href="#n382">382</a></p>
<p id="n383" class="pln"><a href="#n383">383</a></p>
<p id="n384" class="pln"><a href="#n384">384</a></p>
<p id="n385" class="stm run hide_run"><a href="#n385">385</a></p>
<p id="n386" class="pln"><a href="#n386">386</a></p>
<p id="n387" class="pln"><a href="#n387">387</a></p>
<p id="n388" class="pln"><a href="#n388">388</a></p>
<p id="n389" class="pln"><a href="#n389">389</a></p>
<p id="n390" class="pln"><a href="#n390">390</a></p>
<p id="n391" class="pln"><a href="#n391">391</a></p>
<p id="n392" class="stm run hide_run"><a href="#n392">392</a></p>
<p id="n393" class="stm mis"><a href="#n393">393</a></p>
<p id="n394" class="pln"><a href="#n394">394</a></p>
<p id="n395" class="stm run hide_run"><a href="#n395">395</a></p>
<p id="n396" class="pln"><a href="#n396">396</a></p>
<p id="n397" class="pln"><a href="#n397">397</a></p>
<p id="n398" class="pln"><a href="#n398">398</a></p>
<p id="n399" class="pln"><a href="#n399">399</a></p>
<p id="n400" class="pln"><a href="#n400">400</a></p>
<p id="n401" class="pln"><a href="#n401">401</a></p>
<p id="n402" class="pln"><a href="#n402">402</a></p>
<p id="n403" class="pln"><a href="#n403">403</a></p>
<p id="n404" class="pln"><a href="#n404">404</a></p>
<p id="n405" class="pln"><a href="#n405">405</a></p>
<p id="n406" class="pln"><a href="#n406">406</a></p>
<p id="n407" class="pln"><a href="#n407">407</a></p>
<p id="n408" class="pln"><a href="#n408">408</a></p>
<p id="n409" class="pln"><a href="#n409">409</a></p>
<p id="n410" class="pln"><a href="#n410">410</a></p>
<p id="n411" class="pln"><a href="#n411">411</a></p>
<p id="n412" class="pln"><a href="#n412">412</a></p>
<p id="n413" class="pln"><a href="#n413">413</a></p>
<p id="n414" class="pln"><a href="#n414">414</a></p>
<p id="n415" class="pln"><a href="#n415">415</a></p>
<p id="n416" class="pln"><a href="#n416">416</a></p>
<p id="n417" class="pln"><a href="#n417">417</a></p>
<p id="n418" class="pln"><a href="#n418">418</a></p>
<p id="n419" class="pln"><a href="#n419">419</a></p>
<p id="n420" class="stm run hide_run"><a href="#n420">420</a></p>
<p id="n421" class="stm run hide_run"><a href="#n421">421</a></p>
<p id="n422" class="stm run hide_run"><a href="#n422">422</a></p>
<p id="n423" class="stm run hide_run"><a href="#n423">423</a></p>
<p id="n424" class="stm run hide_run"><a href="#n424">424</a></p>
<p id="n425" class="stm run hide_run"><a href="#n425">425</a></p>
<p id="n426" class="stm run hide_run"><a href="#n426">426</a></p>
<p id="n427" class="stm run hide_run"><a href="#n427">427</a></p>
<p id="n428" class="stm mis"><a href="#n428">428</a></p>
<p id="n429" class="stm mis"><a href="#n429">429</a></p>
<p id="n430" class="stm mis"><a href="#n430">430</a></p>
<p id="n431" class="stm mis"><a href="#n431">431</a></p>
<p id="n432" class="stm mis"><a href="#n432">432</a></p>
<p id="n433" class="pln"><a href="#n433">433</a></p>
<p id="n434" class="pln"><a href="#n434">434</a></p>
<p id="n435" class="pln"><a href="#n435">435</a></p>
<p id="n436" class="stm mis"><a href="#n436">436</a></p>
<p id="n437" class="stm mis"><a href="#n437">437</a></p>
<p id="n438" class="pln"><a href="#n438">438</a></p>
<p id="n439" class="stm run hide_run"><a href="#n439">439</a></p>
<p id="n440" class="pln"><a href="#n440">440</a></p>
<p id="n441" class="stm mis"><a href="#n441">441</a></p>
<p id="n442" class="stm mis"><a href="#n442">442</a></p>
<p id="n443" class="pln"><a href="#n443">443</a></p>
<p id="n444" class="pln"><a href="#n444">444</a></p>
<p id="n445" class="pln"><a href="#n445">445</a></p>
<p id="n446" class="stm mis"><a href="#n446">446</a></p>
<p id="n447" class="stm mis"><a href="#n447">447</a></p>
<p id="n448" class="pln"><a href="#n448">448</a></p>
<p id="n449" class="stm run hide_run"><a href="#n449">449</a></p>
<p id="n450" class="pln"><a href="#n450">450</a></p>
<p id="n451" class="stm run hide_run"><a href="#n451">451</a></p>
<p id="n452" class="pln"><a href="#n452">452</a></p>
<p id="n453" class="pln"><a href="#n453">453</a></p>
<p id="n454" class="pln"><a href="#n454">454</a></p>
<p id="n455" class="pln"><a href="#n455">455</a></p>
<p id="n456" class="pln"><a href="#n456">456</a></p>
<p id="n457" class="pln"><a href="#n457">457</a></p>
<p id="n458" class="pln"><a href="#n458">458</a></p>
<p id="n459" class="pln"><a href="#n459">459</a></p>
<p id="n460" class="pln"><a href="#n460">460</a></p>
<p id="n461" class="pln"><a href="#n461">461</a></p>
<p id="n462" class="pln"><a href="#n462">462</a></p>
<p id="n463" class="pln"><a href="#n463">463</a></p>
<p id="n464" class="pln"><a href="#n464">464</a></p>
<p id="n465" class="pln"><a href="#n465">465</a></p>
<p id="n466" class="pln"><a href="#n466">466</a></p>
<p id="n467" class="pln"><a href="#n467">467</a></p>
<p id="n468" class="pln"><a href="#n468">468</a></p>
<p id="n469" class="pln"><a href="#n469">469</a></p>
<p id="n470" class="pln"><a href="#n470">470</a></p>
<p id="n471" class="pln"><a href="#n471">471</a></p>
<p id="n472" class="pln"><a href="#n472">472</a></p>
<p id="n473" class="pln"><a href="#n473">473</a></p>
<p id="n474" class="stm run hide_run"><a href="#n474">474</a></p>
<p id="n475" class="stm mis"><a href="#n475">475</a></p>
<p id="n476" class="pln"><a href="#n476">476</a></p>
<p id="n477" class="pln"><a href="#n477">477</a></p>
<p id="n478" class="pln"><a href="#n478">478</a></p>
<p id="n479" class="stm mis"><a href="#n479">479</a></p>
<p id="n480" class="stm mis"><a href="#n480">480</a></p>
<p id="n481" class="pln"><a href="#n481">481</a></p>
<p id="n482" class="stm run hide_run"><a href="#n482">482</a></p>
<p id="n483" class="stm run hide_run"><a href="#n483">483</a></p>
<p id="n484" class="stm run hide_run"><a href="#n484">484</a></p>
<p id="n485" class="stm run hide_run"><a href="#n485">485</a></p>
<p id="n486" class="pln"><a href="#n486">486</a></p>
<p id="n487" class="stm run hide_run"><a href="#n487">487</a></p>
<p id="n488" class="pln"><a href="#n488">488</a></p>
<p id="n489" class="pln"><a href="#n489">489</a></p>
<p id="n490" class="pln"><a href="#n490">490</a></p>
<p id="n491" class="stm run hide_run"><a href="#n491">491</a></p>
<p id="n492" class="stm run hide_run"><a href="#n492">492</a></p>
<p id="n493" class="pln"><a href="#n493">493</a></p>
<p id="n494" class="stm run hide_run"><a href="#n494">494</a></p>
<p id="n495" class="pln"><a href="#n495">495</a></p>
<p id="n496" class="pln"><a href="#n496">496</a></p>
<p id="n497" class="pln"><a href="#n497">497</a></p>
<p id="n498" class="pln"><a href="#n498">498</a></p>
<p id="n499" class="pln"><a href="#n499">499</a></p>
<p id="n500" class="pln"><a href="#n500">500</a></p>
<p id="n501" class="pln"><a href="#n501">501</a></p>
<p id="n502" class="stm run hide_run"><a href="#n502">502</a></p>
<p id="n503" class="stm mis"><a href="#n503">503</a></p>
<p id="n504" class="pln"><a href="#n504">504</a></p>
<p id="n505" class="pln"><a href="#n505">505</a></p>
<p id="n506" class="pln"><a href="#n506">506</a></p>
<p id="n507" class="pln"><a href="#n507">507</a></p>
<p id="n508" class="stm mis"><a href="#n508">508</a></p>
<p id="n509" class="stm mis"><a href="#n509">509</a></p>
<p id="n510" class="pln"><a href="#n510">510</a></p>
<p id="n511" class="stm run hide_run"><a href="#n511">511</a></p>
<p id="n512" class="stm run hide_run"><a href="#n512">512</a></p>
<p id="n513" class="stm run hide_run"><a href="#n513">513</a></p>
<p id="n514" class="pln"><a href="#n514">514</a></p>
<p id="n515" class="stm run hide_run"><a href="#n515">515</a></p>
<p id="n516" class="pln"><a href="#n516">516</a></p>
<p id="n517" class="stm run hide_run"><a href="#n517">517</a></p>
<p id="n518" class="stm mis"><a href="#n518">518</a></p>
<p id="n519" class="stm mis"><a href="#n519">519</a></p>
<p id="n520" class="stm mis"><a href="#n520">520</a></p>
<p id="n521" class="pln"><a href="#n521">521</a></p>
<p id="n522" class="pln"><a href="#n522">522</a></p>
<p id="n523" class="stm run hide_run"><a href="#n523">523</a></p>
<p id="n524" class="stm run hide_run"><a href="#n524">524</a></p>
<p id="n525" class="stm run hide_run"><a href="#n525">525</a></p>
<p id="n526" class="stm run hide_run"><a href="#n526">526</a></p>
<p id="n527" class="pln"><a href="#n527">527</a></p>
<p id="n528" class="pln"><a href="#n528">528</a></p>
<p id="n529" class="stm run hide_run"><a href="#n529">529</a></p>
<p id="n530" class="pln"><a href="#n530">530</a></p>
<p id="n531" class="stm run hide_run"><a href="#n531">531</a></p>
<p id="n532" class="pln"><a href="#n532">532</a></p>
<p id="n533" class="pln"><a href="#n533">533</a></p>
<p id="n534" class="stm run hide_run"><a href="#n534">534</a></p>
<p id="n535" class="stm run hide_run"><a href="#n535">535</a></p>
<p id="n536" class="stm run hide_run"><a href="#n536">536</a></p>
<p id="n537" class="stm run hide_run"><a href="#n537">537</a></p>
<p id="n538" class="pln"><a href="#n538">538</a></p>
<p id="n539" class="stm run hide_run"><a href="#n539">539</a></p>
<p id="n540" class="pln"><a href="#n540">540</a></p>
<p id="n541" class="pln"><a href="#n541">541</a></p>
<p id="n542" class="pln"><a href="#n542">542</a></p>
<p id="n543" class="stm run hide_run"><a href="#n543">543</a></p>
<p id="n544" class="stm run hide_run"><a href="#n544">544</a></p>
<p id="n545" class="stm run hide_run"><a href="#n545">545</a></p>
<p id="n546" class="pln"><a href="#n546">546</a></p>
<p id="n547" class="stm run hide_run"><a href="#n547">547</a></p>
<p id="n548" class="pln"><a href="#n548">548</a></p>
<p id="n549" class="pln"><a href="#n549">549</a></p>
<p id="n550" class="stm run hide_run"><a href="#n550">550</a></p>
<p id="n551" class="stm run hide_run"><a href="#n551">551</a></p>
<p id="n552" class="pln"><a href="#n552">552</a></p>
<p id="n553" class="pln"><a href="#n553">553</a></p>
<p id="n554" class="stm run hide_run"><a href="#n554">554</a></p>
<p id="n555" class="stm run hide_run"><a href="#n555">555</a></p>
<p id="n556" class="stm run hide_run"><a href="#n556">556</a></p>
<p id="n557" class="stm run hide_run"><a href="#n557">557</a></p>
<p id="n558" class="pln"><a href="#n558">558</a></p>
<p id="n559" class="pln"><a href="#n559">559</a></p>
<p id="n560" class="stm mis"><a href="#n560">560</a></p>
<p id="n561" class="stm mis"><a href="#n561">561</a></p>
<p id="n562" class="stm mis"><a href="#n562">562</a></p>
<p id="n563" class="pln"><a href="#n563">563</a></p>
<p id="n564" class="pln"><a href="#n564">564</a></p>
<p id="n565" class="pln"><a href="#n565">565</a></p>
<p id="n566" class="stm mis"><a href="#n566">566</a></p>
<p id="n567" class="pln"><a href="#n567">567</a></p>
<p id="n568" class="stm mis"><a href="#n568">568</a></p>
<p id="n569" class="stm mis"><a href="#n569">569</a></p>
<p id="n570" class="pln"><a href="#n570">570</a></p>
<p id="n571" class="pln"><a href="#n571">571</a></p>
<p id="n572" class="pln"><a href="#n572">572</a></p>
<p id="n573" class="stm mis"><a href="#n573">573</a></p>
<p id="n574" class="pln"><a href="#n574">574</a></p>
<p id="n575" class="pln"><a href="#n575">575</a></p>
<p id="n576" class="stm run hide_run"><a href="#n576">576</a></p>
<p id="n577" class="stm run hide_run"><a href="#n577">577</a></p>
<p id="n578" class="pln"><a href="#n578">578</a></p>
<p id="n579" class="pln"><a href="#n579">579</a></p>
<p id="n580" class="stm run hide_run"><a href="#n580">580</a></p>
<p id="n581" class="pln"><a href="#n581">581</a></p>
<p id="n582" class="pln"><a href="#n582">582</a></p>
<p id="n583" class="pln"><a href="#n583">583</a></p>
<p id="n584" class="pln"><a href="#n584">584</a></p>
<p id="n585" class="stm run hide_run"><a href="#n585">585</a></p>
<p id="n586" class="pln"><a href="#n586">586</a></p>
<p id="n587" class="pln"><a href="#n587">587</a></p>
<p id="n588" class="pln"><a href="#n588">588</a></p>
<p id="n589" class="pln"><a href="#n589">589</a></p>
<p id="n590" class="stm run hide_run"><a href="#n590">590</a></p>
<p id="n591" class="pln"><a href="#n591">591</a></p>
<p id="n592" class="stm run hide_run"><a href="#n592">592</a></p>
<p id="n593" class="pln"><a href="#n593">593</a></p>
<p id="n594" class="pln"><a href="#n594">594</a></p>
<p id="n595" class="pln"><a href="#n595">595</a></p>
<p id="n596" class="pln"><a href="#n596">596</a></p>
<p id="n597" class="pln"><a href="#n597">597</a></p>
<p id="n598" class="pln"><a href="#n598">598</a></p>
<p id="n599" class="pln"><a href="#n599">599</a></p>
<p id="n600" class="pln"><a href="#n600">600</a></p>
<p id="n601" class="pln"><a href="#n601">601</a></p>
<p id="n602" class="pln"><a href="#n602">602</a></p>
<p id="n603" class="pln"><a href="#n603">603</a></p>
<p id="n604" class="pln"><a href="#n604">604</a></p>
<p id="n605" class="pln"><a href="#n605">605</a></p>
<p id="n606" class="pln"><a href="#n606">606</a></p>
<p id="n607" class="pln"><a href="#n607">607</a></p>
<p id="n608" class="pln"><a href="#n608">608</a></p>
<p id="n609" class="pln"><a href="#n609">609</a></p>
<p id="n610" class="pln"><a href="#n610">610</a></p>
<p id="n611" class="pln"><a href="#n611">611</a></p>
<p id="n612" class="pln"><a href="#n612">612</a></p>
<p id="n613" class="pln"><a href="#n613">613</a></p>
<p id="n614" class="pln"><a href="#n614">614</a></p>
<p id="n615" class="pln"><a href="#n615">615</a></p>
<p id="n616" class="pln"><a href="#n616">616</a></p>
<p id="n617" class="pln"><a href="#n617">617</a></p>
<p id="n618" class="pln"><a href="#n618">618</a></p>
<p id="n619" class="stm run hide_run"><a href="#n619">619</a></p>
<p id="n620" class="stm run hide_run"><a href="#n620">620</a></p>
<p id="n621" class="stm run hide_run"><a href="#n621">621</a></p>
<p id="n622" class="pln"><a href="#n622">622</a></p>
<p id="n623" class="pln"><a href="#n623">623</a></p>
<p id="n624" class="stm run hide_run"><a href="#n624">624</a></p>
<p id="n625" class="pln"><a href="#n625">625</a></p>
<p id="n626" class="pln"><a href="#n626">626</a></p>
<p id="n627" class="pln"><a href="#n627">627</a></p>
<p id="n628" class="pln"><a href="#n628">628</a></p>
<p id="n629" class="stm mis"><a href="#n629">629</a></p>
<p id="n630" class="pln"><a href="#n630">630</a></p>
<p id="n631" class="pln"><a href="#n631">631</a></p>
<p id="n632" class="pln"><a href="#n632">632</a></p>
<p id="n633" class="pln"><a href="#n633">633</a></p>
<p id="n634" class="pln"><a href="#n634">634</a></p>
<p id="n635" class="stm mis"><a href="#n635">635</a></p>
<p id="n636" class="stm mis"><a href="#n636">636</a></p>
<p id="n637" class="pln"><a href="#n637">637</a></p>
<p id="n638" class="pln"><a href="#n638">638</a></p>
<p id="n639" class="stm run hide_run"><a href="#n639">639</a></p>
<p id="n640" class="stm run hide_run"><a href="#n640">640</a></p>
<p id="n641" class="stm run hide_run"><a href="#n641">641</a></p>
<p id="n642" class="pln"><a href="#n642">642</a></p>
<p id="n643" class="pln"><a href="#n643">643</a></p>
<p id="n644" class="stm run hide_run"><a href="#n644">644</a></p>
<p id="n645" class="stm run hide_run"><a href="#n645">645</a></p>
<p id="n646" class="stm run hide_run"><a href="#n646">646</a></p>
<p id="n647" class="stm run hide_run"><a href="#n647">647</a></p>
<p id="n648" class="pln"><a href="#n648">648</a></p>
<p id="n649" class="pln"><a href="#n649">649</a></p>
<p id="n650" class="stm run hide_run"><a href="#n650">650</a></p>
<p id="n651" class="pln"><a href="#n651">651</a></p>
<p id="n652" class="pln"><a href="#n652">652</a></p>
<p id="n653" class="pln"><a href="#n653">653</a></p>
<p id="n654" class="pln"><a href="#n654">654</a></p>
<p id="n655" class="stm mis"><a href="#n655">655</a></p>
<p id="n656" class="pln"><a href="#n656">656</a></p>
<p id="n657" class="pln"><a href="#n657">657</a></p>
<p id="n658" class="pln"><a href="#n658">658</a></p>
<p id="n659" class="pln"><a href="#n659">659</a></p>
<p id="n660" class="pln"><a href="#n660">660</a></p>
<p id="n661" class="stm mis"><a href="#n661">661</a></p>
<p id="n662" class="stm mis"><a href="#n662">662</a></p>
<p id="n663" class="pln"><a href="#n663">663</a></p>
<p id="n664" class="stm run hide_run"><a href="#n664">664</a></p>
<p id="n665" class="pln"><a href="#n665">665</a></p>
<p id="n666" class="stm run hide_run"><a href="#n666">666</a></p>
<p id="n667" class="stm run hide_run"><a href="#n667">667</a></p>
<p id="n668" class="stm mis"><a href="#n668">668</a></p>
<p id="n669" class="stm mis"><a href="#n669">669</a></p>
<p id="n670" class="stm mis"><a href="#n670">670</a></p>
<p id="n671" class="stm mis"><a href="#n671">671</a></p>
<p id="n672" class="stm mis"><a href="#n672">672</a></p>
<p id="n673" class="stm mis"><a href="#n673">673</a></p>
<p id="n674" class="stm mis"><a href="#n674">674</a></p>
<p id="n675" class="stm mis"><a href="#n675">675</a></p>
<p id="n676" class="stm mis"><a href="#n676">676</a></p>
<p id="n677" class="pln"><a href="#n677">677</a></p>
<p id="n678" class="stm mis"><a href="#n678">678</a></p>
<p id="n679" class="stm mis"><a href="#n679">679</a></p>
<p id="n680" class="stm mis"><a href="#n680">680</a></p>
<p id="n681" class="pln"><a href="#n681">681</a></p>
<p id="n682" class="stm mis"><a href="#n682">682</a></p>
<p id="n683" class="stm mis"><a href="#n683">683</a></p>
<p id="n684" class="stm mis"><a href="#n684">684</a></p>
<p id="n685" class="pln"><a href="#n685">685</a></p>
<p id="n686" class="stm run hide_run"><a href="#n686">686</a></p>
<p id="n687" class="pln"><a href="#n687">687</a></p>
<p id="n688" class="stm run hide_run"><a href="#n688">688</a></p>
<p id="n689" class="stm mis"><a href="#n689">689</a></p>
<p id="n690" class="stm mis"><a href="#n690">690</a></p>
<p id="n691" class="pln"><a href="#n691">691</a></p>
<p id="n692" class="pln"><a href="#n692">692</a></p>
<p id="n693" class="stm run hide_run"><a href="#n693">693</a></p>
<p id="n694" class="stm run hide_run"><a href="#n694">694</a></p>
<p id="n695" class="pln"><a href="#n695">695</a></p>
<p id="n696" class="pln"><a href="#n696">696</a></p>
<p id="n697" class="stm run hide_run"><a href="#n697">697</a></p>
<p id="n698" class="stm run hide_run"><a href="#n698">698</a></p>
<p id="n699" class="pln"><a href="#n699">699</a></p>
<p id="n700" class="pln"><a href="#n700">700</a></p>
<p id="n701" class="stm run hide_run"><a href="#n701">701</a></p>
<p id="n702" class="stm run hide_run"><a href="#n702">702</a></p>
<p id="n703" class="pln"><a href="#n703">703</a></p>
<p id="n704" class="pln"><a href="#n704">704</a></p>
<p id="n705" class="pln"><a href="#n705">705</a></p>
<p id="n706" class="pln"><a href="#n706">706</a></p>
<p id="n707" class="stm run hide_run"><a href="#n707">707</a></p>
<p id="n708" class="stm run hide_run"><a href="#n708">708</a></p>
<p id="n709" class="pln"><a href="#n709">709</a></p>
<p id="n710" class="pln"><a href="#n710">710</a></p>
<p id="n711" class="stm run hide_run"><a href="#n711">711</a></p>
<p id="n712" class="pln"><a href="#n712">712</a></p>
<p id="n713" class="pln"><a href="#n713">713</a></p>
<p id="n714" class="pln"><a href="#n714">714</a></p>
<p id="n715" class="stm run hide_run"><a href="#n715">715</a></p>
<p id="n716" class="stm mis"><a href="#n716">716</a></p>
<p id="n717" class="stm mis"><a href="#n717">717</a></p>
<p id="n718" class="stm mis"><a href="#n718">718</a></p>
<p id="n719" class="stm mis"><a href="#n719">719</a></p>
<p id="n720" class="stm mis"><a href="#n720">720</a></p>
<p id="n721" class="stm mis"><a href="#n721">721</a></p>
<p id="n722" class="stm mis"><a href="#n722">722</a></p>
<p id="n723" class="stm mis"><a href="#n723">723</a></p>
<p id="n724" class="pln"><a href="#n724">724</a></p>
<p id="n725" class="pln"><a href="#n725">725</a></p>
<p id="n726" class="stm run hide_run"><a href="#n726">726</a></p>
<p id="n727" class="stm run hide_run"><a href="#n727">727</a></p>
<p id="n728" class="stm run hide_run"><a href="#n728">728</a></p>
<p id="n729" class="stm mis"><a href="#n729">729</a></p>
<p id="n730" class="stm run hide_run"><a href="#n730">730</a></p>
<p id="n731" class="stm mis"><a href="#n731">731</a></p>
<p id="n732" class="pln"><a href="#n732">732</a></p>
<p id="n733" class="pln"><a href="#n733">733</a></p>
<p id="n734" class="pln"><a href="#n734">734</a></p>
<p id="n735" class="pln"><a href="#n735">735</a></p>
<p id="n736" class="stm run hide_run"><a href="#n736">736</a></p>
<p id="n737" class="pln"><a href="#n737">737</a></p>
<p id="n738" class="stm run hide_run"><a href="#n738">738</a></p>
<p id="n739" class="pln"><a href="#n739">739</a></p>
<p id="n740" class="stm run hide_run"><a href="#n740">740</a></p>
<p id="n741" class="stm run hide_run"><a href="#n741">741</a></p>
<p id="n742" class="stm run hide_run"><a href="#n742">742</a></p>
<p id="n743" class="stm run hide_run"><a href="#n743">743</a></p>
<p id="n744" class="pln"><a href="#n744">744</a></p>
<p id="n745" class="stm run hide_run"><a href="#n745">745</a></p>
<p id="n746" class="stm run hide_run"><a href="#n746">746</a></p>
<p id="n747" class="stm run hide_run"><a href="#n747">747</a></p>
<p id="n748" class="stm mis"><a href="#n748">748</a></p>
<p id="n749" class="stm run hide_run"><a href="#n749">749</a></p>
<p id="n750" class="stm mis"><a href="#n750">750</a></p>
<p id="n751" class="stm run hide_run"><a href="#n751">751</a></p>
<p id="n752" class="stm mis"><a href="#n752">752</a></p>
<p id="n753" class="pln"><a href="#n753">753</a></p>
<p id="n754" class="stm run hide_run"><a href="#n754">754</a></p>
<p id="n755" class="stm run hide_run"><a href="#n755">755</a></p>
<p id="n756" class="pln"><a href="#n756">756</a></p>
<p id="n757" class="stm run hide_run"><a href="#n757">757</a></p>
<p id="n758" class="stm run hide_run"><a href="#n758">758</a></p>
<p id="n759" class="pln"><a href="#n759">759</a></p>
<p id="n760" class="stm mis"><a href="#n760">760</a></p>
<p id="n761" class="stm mis"><a href="#n761">761</a></p>
<p id="n762" class="pln"><a href="#n762">762</a></p>
<p id="n763" class="stm run hide_run"><a href="#n763">763</a></p>
<p id="n764" class="stm run hide_run"><a href="#n764">764</a></p>
<p id="n765" class="stm run hide_run"><a href="#n765">765</a></p>
<p id="n766" class="stm run hide_run"><a href="#n766">766</a></p>
<p id="n767" class="pln"><a href="#n767">767</a></p>
<p id="n768" class="stm run hide_run"><a href="#n768">768</a></p>
<p id="n769" class="stm run hide_run"><a href="#n769">769</a></p>
<p id="n770" class="stm run hide_run"><a href="#n770">770</a></p>
<p id="n771" class="stm run hide_run"><a href="#n771">771</a></p>
<p id="n772" class="stm run hide_run"><a href="#n772">772</a></p>
<p id="n773" class="stm run hide_run"><a href="#n773">773</a></p>
<p id="n774" class="stm run hide_run"><a href="#n774">774</a></p>
<p id="n775" class="stm run hide_run"><a href="#n775">775</a></p>
<p id="n776" class="stm run hide_run"><a href="#n776">776</a></p>
<p id="n777" class="stm run hide_run"><a href="#n777">777</a></p>
<p id="n778" class="stm run hide_run"><a href="#n778">778</a></p>
<p id="n779" class="pln"><a href="#n779">779</a></p>
<p id="n780" class="stm run hide_run"><a href="#n780">780</a></p>
<p id="n781" class="stm run hide_run"><a href="#n781">781</a></p>
<p id="n782" class="stm run hide_run"><a href="#n782">782</a></p>
<p id="n783" class="stm run hide_run"><a href="#n783">783</a></p>
<p id="n784" class="stm run hide_run"><a href="#n784">784</a></p>
<p id="n785" class="stm run hide_run"><a href="#n785">785</a></p>
<p id="n786" class="pln"><a href="#n786">786</a></p>
<p id="n787" class="stm run hide_run"><a href="#n787">787</a></p>
<p id="n788" class="pln"><a href="#n788">788</a></p>
<p id="n789" class="stm run hide_run"><a href="#n789">789</a></p>
<p id="n790" class="pln"><a href="#n790">790</a></p>
<p id="n791" class="stm run hide_run"><a href="#n791">791</a></p>
<p id="n792" class="pln"><a href="#n792">792</a></p>
<p id="n793" class="stm run hide_run"><a href="#n793">793</a></p>
<p id="n794" class="stm run hide_run"><a href="#n794">794</a></p>
<p id="n795" class="pln"><a href="#n795">795</a></p>
<p id="n796" class="stm run hide_run"><a href="#n796">796</a></p>
<p id="n797" class="pln"><a href="#n797">797</a></p>
<p id="n798" class="stm run hide_run"><a href="#n798">798</a></p>
<p id="n799" class="pln"><a href="#n799">799</a></p>
<p id="n800" class="stm run hide_run"><a href="#n800">800</a></p>
<p id="n801" class="stm run hide_run"><a href="#n801">801</a></p>
<p id="n802" class="pln"><a href="#n802">802</a></p>
<p id="n803" class="stm mis"><a href="#n803">803</a></p>
<p id="n804" class="pln"><a href="#n804">804</a></p>
<p id="n805" class="pln"><a href="#n805">805</a></p>
<p id="n806" class="stm run hide_run"><a href="#n806">806</a></p>
<p id="n807" class="pln"><a href="#n807">807</a></p>
<p id="n808" class="stm run hide_run"><a href="#n808">808</a></p>
<p id="n809" class="stm mis"><a href="#n809">809</a></p>
<p id="n810" class="stm mis"><a href="#n810">810</a></p>
<p id="n811" class="stm mis"><a href="#n811">811</a></p>
<p id="n812" class="stm mis"><a href="#n812">812</a></p>
<p id="n813" class="stm mis"><a href="#n813">813</a></p>
<p id="n814" class="stm mis"><a href="#n814">814</a></p>
<p id="n815" class="stm mis"><a href="#n815">815</a></p>
<p id="n816" class="stm mis"><a href="#n816">816</a></p>
<p id="n817" class="pln"><a href="#n817">817</a></p>
<p id="n818" class="stm mis"><a href="#n818">818</a></p>
<p id="n819" class="pln"><a href="#n819">819</a></p>
<p id="n820" class="stm mis"><a href="#n820">820</a></p>
<p id="n821" class="stm mis"><a href="#n821">821</a></p>
<p id="n822" class="pln"><a href="#n822">822</a></p>
<p id="n823" class="stm mis"><a href="#n823">823</a></p>
<p id="n824" class="pln"><a href="#n824">824</a></p>
<p id="n825" class="stm mis"><a href="#n825">825</a></p>
<p id="n826" class="stm mis"><a href="#n826">826</a></p>
<p id="n827" class="pln"><a href="#n827">827</a></p>
<p id="n828" class="stm mis"><a href="#n828">828</a></p>
<p id="n829" class="stm mis"><a href="#n829">829</a></p>
<p id="n830" class="pln"><a href="#n830">830</a></p>
<p id="n831" class="stm mis"><a href="#n831">831</a></p>
<p id="n832" class="stm mis"><a href="#n832">832</a></p>
<p id="n833" class="stm mis"><a href="#n833">833</a></p>
<p id="n834" class="pln"><a href="#n834">834</a></p>
<p id="n835" class="stm run hide_run"><a href="#n835">835</a></p>
<p id="n836" class="stm mis"><a href="#n836">836</a></p>
<p id="n837" class="stm mis"><a href="#n837">837</a></p>
<p id="n838" class="stm mis"><a href="#n838">838</a></p>
<p id="n839" class="stm mis"><a href="#n839">839</a></p>
<p id="n840" class="stm mis"><a href="#n840">840</a></p>
<p id="n841" class="stm mis"><a href="#n841">841</a></p>
<p id="n842" class="pln"><a href="#n842">842</a></p>
<p id="n843" class="stm mis"><a href="#n843">843</a></p>
<p id="n844" class="pln"><a href="#n844">844</a></p>
<p id="n845" class="stm mis"><a href="#n845">845</a></p>
<p id="n846" class="stm mis"><a href="#n846">846</a></p>
<p id="n847" class="pln"><a href="#n847">847</a></p>
<p id="n848" class="stm mis"><a href="#n848">848</a></p>
<p id="n849" class="stm mis"><a href="#n849">849</a></p>
<p id="n850" class="stm mis"><a href="#n850">850</a></p>
<p id="n851" class="pln"><a href="#n851">851</a></p>
<p id="n852" class="stm run hide_run"><a href="#n852">852</a></p>
<p id="n853" class="stm run hide_run"><a href="#n853">853</a></p>
<p id="n854" class="stm run hide_run"><a href="#n854">854</a></p>
<p id="n855" class="stm run hide_run"><a href="#n855">855</a></p>
<p id="n856" class="stm run hide_run"><a href="#n856">856</a></p>
<p id="n857" class="pln"><a href="#n857">857</a></p>
<p id="n858" class="stm run hide_run"><a href="#n858">858</a></p>
<p id="n859" class="stm run hide_run"><a href="#n859">859</a></p>
<p id="n860" class="stm run hide_run"><a href="#n860">860</a></p>
<p id="n861" class="stm run hide_run"><a href="#n861">861</a></p>
<p id="n862" class="stm run hide_run"><a href="#n862">862</a></p>
<p id="n863" class="stm run hide_run"><a href="#n863">863</a></p>
<p id="n864" class="pln"><a href="#n864">864</a></p>
<p id="n865" class="stm run hide_run"><a href="#n865">865</a></p>
<p id="n866" class="stm run hide_run"><a href="#n866">866</a></p>
<p id="n867" class="stm run hide_run"><a href="#n867">867</a></p>
<p id="n868" class="stm run hide_run"><a href="#n868">868</a></p>
<p id="n869" class="stm run hide_run"><a href="#n869">869</a></p>
<p id="n870" class="stm run hide_run"><a href="#n870">870</a></p>
<p id="n871" class="stm run hide_run"><a href="#n871">871</a></p>
<p id="n872" class="pln"><a href="#n872">872</a></p>
<p id="n873" class="stm run hide_run"><a href="#n873">873</a></p>
<p id="n874" class="pln"><a href="#n874">874</a></p>
<p id="n875" class="pln"><a href="#n875">875</a></p>
<p id="n876" class="pln"><a href="#n876">876</a></p>
<p id="n877" class="pln"><a href="#n877">877</a></p>
<p id="n878" class="pln"><a href="#n878">878</a></p>
<p id="n879" class="pln"><a href="#n879">879</a></p>
<p id="n880" class="pln"><a href="#n880">880</a></p>
<p id="n881" class="pln"><a href="#n881">881</a></p>
<p id="n882" class="pln"><a href="#n882">882</a></p>
<p id="n883" class="pln"><a href="#n883">883</a></p>
<p id="n884" class="pln"><a href="#n884">884</a></p>
<p id="n885" class="pln"><a href="#n885">885</a></p>
<p id="n886" class="pln"><a href="#n886">886</a></p>
<p id="n887" class="pln"><a href="#n887">887</a></p>
<p id="n888" class="pln"><a href="#n888">888</a></p>
<p id="n889" class="pln"><a href="#n889">889</a></p>
<p id="n890" class="pln"><a href="#n890">890</a></p>
<p id="n891" class="pln"><a href="#n891">891</a></p>
<p id="n892" class="pln"><a href="#n892">892</a></p>
<p id="n893" class="pln"><a href="#n893">893</a></p>
<p id="n894" class="pln"><a href="#n894">894</a></p>
<p id="n895" class="pln"><a href="#n895">895</a></p>
<p id="n896" class="pln"><a href="#n896">896</a></p>
<p id="n897" class="pln"><a href="#n897">897</a></p>
<p id="n898" class="pln"><a href="#n898">898</a></p>
<p id="n899" class="stm run hide_run"><a href="#n899">899</a></p>
<p id="n900" class="pln"><a href="#n900">900</a></p>
<p id="n901" class="pln"><a href="#n901">901</a></p>
<p id="n902" class="pln"><a href="#n902">902</a></p>
<p id="n903" class="pln"><a href="#n903">903</a></p>
<p id="n904" class="pln"><a href="#n904">904</a></p>
<p id="n905" class="pln"><a href="#n905">905</a></p>
<p id="n906" class="pln"><a href="#n906">906</a></p>
<p id="n907" class="stm run hide_run"><a href="#n907">907</a></p>
<p id="n908" class="stm run hide_run"><a href="#n908">908</a></p>
<p id="n909" class="stm run hide_run"><a href="#n909">909</a></p>
<p id="n910" class="stm run hide_run"><a href="#n910">910</a></p>
<p id="n911" class="stm run hide_run"><a href="#n911">911</a></p>
<p id="n912" class="stm run hide_run"><a href="#n912">912</a></p>
<p id="n913" class="stm run hide_run"><a href="#n913">913</a></p>
<p id="n914" class="pln"><a href="#n914">914</a></p>
<p id="n915" class="pln"><a href="#n915">915</a></p>
<p id="n916" class="stm run hide_run"><a href="#n916">916</a></p>
<p id="n917" class="pln"><a href="#n917">917</a></p>
<p id="n918" class="pln"><a href="#n918">918</a></p>
<p id="n919" class="pln"><a href="#n919">919</a></p>
<p id="n920" class="pln"><a href="#n920">920</a></p>
<p id="n921" class="pln"><a href="#n921">921</a></p>
<p id="n922" class="pln"><a href="#n922">922</a></p>
<p id="n923" class="stm run hide_run"><a href="#n923">923</a></p>
<p id="n924" class="stm run hide_run"><a href="#n924">924</a></p>
<p id="n925" class="stm run hide_run"><a href="#n925">925</a></p>
<p id="n926" class="pln"><a href="#n926">926</a></p>
<p id="n927" class="stm run hide_run"><a href="#n927">927</a></p>
<p id="n928" class="pln"><a href="#n928">928</a></p>
<p id="n929" class="pln"><a href="#n929">929</a></p>
<p id="n930" class="stm run hide_run"><a href="#n930">930</a></p>
<p id="n931" class="stm run hide_run"><a href="#n931">931</a></p>
<p id="n932" class="pln"><a href="#n932">932</a></p>
<p id="n933" class="stm run hide_run"><a href="#n933">933</a></p>
<p id="n934" class="stm run hide_run"><a href="#n934">934</a></p>
<p id="n935" class="stm run hide_run"><a href="#n935">935</a></p>
<p id="n936" class="stm run hide_run"><a href="#n936">936</a></p>
<p id="n937" class="stm run hide_run"><a href="#n937">937</a></p>
<p id="n938" class="stm run hide_run"><a href="#n938">938</a></p>
<p id="n939" class="pln"><a href="#n939">939</a></p>
<p id="n940" class="stm run hide_run"><a href="#n940">940</a></p>
<p id="n941" class="stm run hide_run"><a href="#n941">941</a></p>
<p id="n942" class="stm run hide_run"><a href="#n942">942</a></p>
<p id="n943" class="stm run hide_run"><a href="#n943">943</a></p>
<p id="n944" class="stm run hide_run"><a href="#n944">944</a></p>
<p id="n945" class="stm run hide_run"><a href="#n945">945</a></p>
<p id="n946" class="pln"><a href="#n946">946</a></p>
<p id="n947" class="stm run hide_run"><a href="#n947">947</a></p>
<p id="n948" class="stm run hide_run"><a href="#n948">948</a></p>
<p id="n949" class="stm run hide_run"><a href="#n949">949</a></p>
<p id="n950" class="pln"><a href="#n950">950</a></p>
<p id="n951" class="stm run hide_run"><a href="#n951">951</a></p>
<p id="n952" class="pln"><a href="#n952">952</a></p>
<p id="n953" class="pln"><a href="#n953">953</a></p>
<p id="n954" class="pln"><a href="#n954">954</a></p>
<p id="n955" class="pln"><a href="#n955">955</a></p>
<p id="n956" class="pln"><a href="#n956">956</a></p>
<p id="n957" class="stm run hide_run"><a href="#n957">957</a></p>
<p id="n958" class="pln"><a href="#n958">958</a></p>
<p id="n959" class="pln"><a href="#n959">959</a></p>
<p id="n960" class="pln"><a href="#n960">960</a></p>
<p id="n961" class="stm run hide_run"><a href="#n961">961</a></p>
<p id="n962" class="pln"><a href="#n962">962</a></p>
<p id="n963" class="stm run hide_run"><a href="#n963">963</a></p>
<p id="n964" class="pln"><a href="#n964">964</a></p>
<p id="n965" class="stm run hide_run"><a href="#n965">965</a></p>
<p id="n966" class="stm run hide_run"><a href="#n966">966</a></p>
<p id="n967" class="pln"><a href="#n967">967</a></p>
<p id="n968" class="stm run hide_run"><a href="#n968">968</a></p>
<p id="n969" class="stm mis"><a href="#n969">969</a></p>
<p id="n970" class="stm mis"><a href="#n970">970</a></p>
<p id="n971" class="stm mis"><a href="#n971">971</a></p>
<p id="n972" class="pln"><a href="#n972">972</a></p>
<p id="n973" class="stm run hide_run"><a href="#n973">973</a></p>
<p id="n974" class="stm run hide_run"><a href="#n974">974</a></p>
<p id="n975" class="stm run hide_run"><a href="#n975">975</a></p>
<p id="n976" class="stm run hide_run"><a href="#n976">976</a></p>
<p id="n977" class="stm run hide_run"><a href="#n977">977</a></p>
<p id="n978" class="stm run hide_run"><a href="#n978">978</a></p>
<p id="n979" class="pln"><a href="#n979">979</a></p>
<p id="n980" class="stm run hide_run"><a href="#n980">980</a></p>
<p id="n981" class="stm run hide_run"><a href="#n981">981</a></p>
<p id="n982" class="stm run hide_run"><a href="#n982">982</a></p>
<p id="n983" class="stm run hide_run"><a href="#n983">983</a></p>
<p id="n984" class="pln"><a href="#n984">984</a></p>
<p id="n985" class="stm run hide_run"><a href="#n985">985</a></p>
<p id="n986" class="stm run hide_run"><a href="#n986">986</a></p>
<p id="n987" class="pln"><a href="#n987">987</a></p>
<p id="n988" class="pln"><a href="#n988">988</a></p>
<p id="n989" class="stm run hide_run"><a href="#n989">989</a></p>
<p id="n990" class="pln"><a href="#n990">990</a></p>
<p id="n991" class="stm run hide_run"><a href="#n991">991</a></p>
<p id="n992" class="stm run hide_run"><a href="#n992">992</a></p>
<p id="n993" class="pln"><a href="#n993">993</a></p>
<p id="n994" class="stm run hide_run"><a href="#n994">994</a></p>
<p id="n995" class="stm run hide_run"><a href="#n995">995</a></p>
<p id="n996" class="pln"><a href="#n996">996</a></p>
<p id="n997" class="stm run hide_run"><a href="#n997">997</a></p>
<p id="n998" class="stm run hide_run"><a href="#n998">998</a></p>
<p id="n999" class="stm mis"><a href="#n999">999</a></p>
<p id="n1000" class="pln"><a href="#n1000">1000</a></p>
<p id="n1001" class="stm run hide_run"><a href="#n1001">1001</a></p>
<p id="n1002" class="stm mis"><a href="#n1002">1002</a></p>
<p id="n1003" class="pln"><a href="#n1003">1003</a></p>
<p id="n1004" class="stm run hide_run"><a href="#n1004">1004</a></p>
<p id="n1005" class="stm mis"><a href="#n1005">1005</a></p>
<p id="n1006" class="pln"><a href="#n1006">1006</a></p>
<p id="n1007" class="stm run hide_run"><a href="#n1007">1007</a></p>
<p id="n1008" class="stm mis"><a href="#n1008">1008</a></p>
<p id="n1009" class="pln"><a href="#n1009">1009</a></p>
<p id="n1010" class="stm run hide_run"><a href="#n1010">1010</a></p>
<p id="n1011" class="pln"><a href="#n1011">1011</a></p>
<p id="n1012" class="stm run hide_run"><a href="#n1012">1012</a></p>
<p id="n1013" class="stm run hide_run"><a href="#n1013">1013</a></p>
<p id="n1014" class="stm mis"><a href="#n1014">1014</a></p>
<p id="n1015" class="pln"><a href="#n1015">1015</a></p>
<p id="n1016" class="stm run hide_run"><a href="#n1016">1016</a></p>
<p id="n1017" class="stm run hide_run"><a href="#n1017">1017</a></p>
<p id="n1018" class="pln"><a href="#n1018">1018</a></p>
<p id="n1019" class="pln"><a href="#n1019">1019</a></p>
<p id="n1020" class="stm run hide_run"><a href="#n1020">1020</a></p>
<p id="n1021" class="stm run hide_run"><a href="#n1021">1021</a></p>
<p id="n1022" class="pln"><a href="#n1022">1022</a></p>
<p id="n1023" class="stm run hide_run"><a href="#n1023">1023</a></p>
<p id="n1024" class="stm run hide_run"><a href="#n1024">1024</a></p>
<p id="n1025" class="stm run hide_run"><a href="#n1025">1025</a></p>
<p id="n1026" class="stm run hide_run"><a href="#n1026">1026</a></p>
<p id="n1027" class="pln"><a href="#n1027">1027</a></p>
<p id="n1028" class="stm run hide_run"><a href="#n1028">1028</a></p>
<p id="n1029" class="stm run hide_run"><a href="#n1029">1029</a></p>
<p id="n1030" class="stm run hide_run"><a href="#n1030">1030</a></p>
<p id="n1031" class="stm run hide_run"><a href="#n1031">1031</a></p>
<p id="n1032" class="pln"><a href="#n1032">1032</a></p>
<p id="n1033" class="stm run hide_run"><a href="#n1033">1033</a></p>
<p id="n1034" class="stm run hide_run"><a href="#n1034">1034</a></p>
<p id="n1035" class="stm run hide_run"><a href="#n1035">1035</a></p>
<p id="n1036" class="pln"><a href="#n1036">1036</a></p>
<p id="n1037" class="stm run hide_run"><a href="#n1037">1037</a></p>
<p id="n1038" class="stm run hide_run"><a href="#n1038">1038</a></p>
<p id="n1039" class="pln"><a href="#n1039">1039</a></p>
<p id="n1040" class="stm run hide_run"><a href="#n1040">1040</a></p>
<p id="n1041" class="stm run hide_run"><a href="#n1041">1041</a></p>
<p id="n1042" class="stm run hide_run"><a href="#n1042">1042</a></p>
<p id="n1043" class="pln"><a href="#n1043">1043</a></p>
<p id="n1044" class="stm run hide_run"><a href="#n1044">1044</a></p>
<p id="n1045" class="stm run hide_run"><a href="#n1045">1045</a></p>
<p id="n1046" class="stm run hide_run"><a href="#n1046">1046</a></p>
<p id="n1047" class="pln"><a href="#n1047">1047</a></p>
<p id="n1048" class="stm run hide_run"><a href="#n1048">1048</a></p>
<p id="n1049" class="stm run hide_run"><a href="#n1049">1049</a></p>
<p id="n1050" class="pln"><a href="#n1050">1050</a></p>
<p id="n1051" class="stm run hide_run"><a href="#n1051">1051</a></p>
<p id="n1052" class="stm mis"><a href="#n1052">1052</a></p>
<p id="n1053" class="pln"><a href="#n1053">1053</a></p>
<p id="n1054" class="stm run hide_run"><a href="#n1054">1054</a></p>
<p id="n1055" class="stm mis"><a href="#n1055">1055</a></p>
<p id="n1056" class="pln"><a href="#n1056">1056</a></p>
<p id="n1057" class="stm run hide_run"><a href="#n1057">1057</a></p>
<p id="n1058" class="stm mis"><a href="#n1058">1058</a></p>
<p id="n1059" class="pln"><a href="#n1059">1059</a></p>
<p id="n1060" class="stm run hide_run"><a href="#n1060">1060</a></p>
<p id="n1061" class="stm mis"><a href="#n1061">1061</a></p>
<p id="n1062" class="pln"><a href="#n1062">1062</a></p>
<p id="n1063" class="stm run hide_run"><a href="#n1063">1063</a></p>
<p id="n1064" class="stm run hide_run"><a href="#n1064">1064</a></p>
<p id="n1065" class="stm run hide_run"><a href="#n1065">1065</a></p>
<p id="n1066" class="stm run hide_run"><a href="#n1066">1066</a></p>
<p id="n1067" class="stm mis"><a href="#n1067">1067</a></p>
<p id="n1068" class="pln"><a href="#n1068">1068</a></p>
<p id="n1069" class="stm run hide_run"><a href="#n1069">1069</a></p>
<p id="n1070" class="stm run hide_run"><a href="#n1070">1070</a></p>
<p id="n1071" class="stm mis"><a href="#n1071">1071</a></p>
<p id="n1072" class="pln"><a href="#n1072">1072</a></p>
<p id="n1073" class="stm run hide_run"><a href="#n1073">1073</a></p>
<p id="n1074" class="stm mis"><a href="#n1074">1074</a></p>
<p id="n1075" class="pln"><a href="#n1075">1075</a></p>
<p id="n1076" class="stm run hide_run"><a href="#n1076">1076</a></p>
<p id="n1077" class="stm mis"><a href="#n1077">1077</a></p>
<p id="n1078" class="pln"><a href="#n1078">1078</a></p>
<p id="n1079" class="stm run hide_run"><a href="#n1079">1079</a></p>
<p id="n1080" class="stm mis"><a href="#n1080">1080</a></p>
<p id="n1081" class="pln"><a href="#n1081">1081</a></p>
<p id="n1082" class="stm run hide_run"><a href="#n1082">1082</a></p>
<p id="n1083" class="pln"><a href="#n1083">1083</a></p>
<p id="n1084" class="pln"><a href="#n1084">1084</a></p>
<p id="n1085" class="stm mis"><a href="#n1085">1085</a></p>
<p id="n1086" class="pln"><a href="#n1086">1086</a></p>
<p id="n1087" class="stm run hide_run"><a href="#n1087">1087</a></p>
<p id="n1088" class="pln"><a href="#n1088">1088</a></p>
<p id="n1089" class="pln"><a href="#n1089">1089</a></p>
<p id="n1090" class="stm mis"><a href="#n1090">1090</a></p>
<p id="n1091" class="pln"><a href="#n1091">1091</a></p>
<p id="n1092" class="stm run hide_run"><a href="#n1092">1092</a></p>
<p id="n1093" class="stm run hide_run"><a href="#n1093">1093</a></p>
<p id="n1094" class="stm mis"><a href="#n1094">1094</a></p>
<p id="n1095" class="pln"><a href="#n1095">1095</a></p>
<p id="n1096" class="stm run hide_run"><a href="#n1096">1096</a></p>
<p id="n1097" class="stm mis"><a href="#n1097">1097</a></p>
<p id="n1098" class="pln"><a href="#n1098">1098</a></p>
<p id="n1099" class="stm run hide_run"><a href="#n1099">1099</a></p>
<p id="n1100" class="stm mis"><a href="#n1100">1100</a></p>
<p id="n1101" class="pln"><a href="#n1101">1101</a></p>
<p id="n1102" class="stm run hide_run"><a href="#n1102">1102</a></p>
<p id="n1103" class="stm mis"><a href="#n1103">1103</a></p>
<p id="n1104" class="pln"><a href="#n1104">1104</a></p>

            </td>
            <td class="text">
<p id="t1" class="pln"><span class="com">#!/usr/bin/env python</span><span class="strut">&nbsp;</span></p>
<p id="t2" class="pln"><span class="com"># -*- coding: utf-8 -*-</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="stm run hide_run"><span class="str">"""</span><span class="strut">&nbsp;</span></p>
<p id="t4" class="pln"><span class="str">Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="str">==========</span><span class="strut">&nbsp;</span></p>
<p id="t6" class="pln"><span class="str">Class for parameter handling. ParameterContainer is based on dict and supports reading and writing to YAML files.</span><span class="strut">&nbsp;</span></p>
<p id="t7" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t8" class="pln"><span class="str">Example YAML file:</span><span class="strut">&nbsp;</span></p>
<p id="t9" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t10" class="pln"><span class="str">.. code-block:: yaml</span><span class="strut">&nbsp;</span></p>
<p id="t11" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t12" class="pln"><span class="str">    active_set: SET1</span><span class="strut">&nbsp;</span></p>
<p id="t13" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t14" class="pln"><span class="str">    sets:</span><span class="strut">&nbsp;</span></p>
<p id="t15" class="pln"><span class="str">        - set_id: SET1</span><span class="strut">&nbsp;</span></p>
<p id="t16" class="pln"><span class="str">          processor1:</span><span class="strut">&nbsp;</span></p>
<p id="t17" class="pln"><span class="str">            method: special_method_2</span><span class="strut">&nbsp;</span></p>
<p id="t18" class="pln"><span class="str">        - set_id: SET2</span><span class="strut">&nbsp;</span></p>
<p id="t19" class="pln"><span class="str">          processor1:</span><span class="strut">&nbsp;</span></p>
<p id="t20" class="pln"><span class="str">            method: special_method_3</span><span class="strut">&nbsp;</span></p>
<p id="t21" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t22" class="pln"><span class="str">    defaults:</span><span class="strut">&nbsp;</span></p>
<p id="t23" class="pln"><span class="str">        flow:</span><span class="strut">&nbsp;</span></p>
<p id="t24" class="pln"><span class="str">            task1: true</span><span class="strut">&nbsp;</span></p>
<p id="t25" class="pln"><span class="str">            task2: true</span><span class="strut">&nbsp;</span></p>
<p id="t26" class="pln"><span class="str">            task3: true</span><span class="strut">&nbsp;</span></p>
<p id="t27" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t28" class="pln"><span class="str">        processor1:</span><span class="strut">&nbsp;</span></p>
<p id="t29" class="pln"><span class="str">            method: special_method_1</span><span class="strut">&nbsp;</span></p>
<p id="t30" class="pln"><span class="str">            field1: 44100</span><span class="strut">&nbsp;</span></p>
<p id="t31" class="pln"><span class="str">            field2: 22050</span><span class="strut">&nbsp;</span></p>
<p id="t32" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t33" class="pln"><span class="str">        processor1_method_parameters:</span><span class="strut">&nbsp;</span></p>
<p id="t34" class="pln"><span class="str">            special_method_1:</span><span class="strut">&nbsp;</span></p>
<p id="t35" class="pln"><span class="str">                field1: 'test1'</span><span class="strut">&nbsp;</span></p>
<p id="t36" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t37" class="pln"><span class="str">            special_method_2:</span><span class="strut">&nbsp;</span></p>
<p id="t38" class="pln"><span class="str">                field1: 'test2'</span><span class="strut">&nbsp;</span></p>
<p id="t39" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t40" class="pln"><span class="str">            special_method_3:</span><span class="strut">&nbsp;</span></p>
<p id="t41" class="pln"><span class="str">                field1: 'test3'</span><span class="strut">&nbsp;</span></p>
<p id="t42" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t43" class="pln"><span class="str">        processor2:</span><span class="strut">&nbsp;</span></p>
<p id="t44" class="pln"><span class="str">            recipe: special_method_1;special_method_2;special_method_3</span><span class="strut">&nbsp;</span></p>
<p id="t45" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t46" class="pln"><span class="str">        processor2_method_parameters:</span><span class="strut">&nbsp;</span></p>
<p id="t47" class="pln"><span class="str">            special_method_1:</span><span class="strut">&nbsp;</span></p>
<p id="t48" class="pln"><span class="str">                field1: 'test1'</span><span class="strut">&nbsp;</span></p>
<p id="t49" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t50" class="pln"><span class="str">            special_method_2:</span><span class="strut">&nbsp;</span></p>
<p id="t51" class="pln"><span class="str">                field1: 'test2'</span><span class="strut">&nbsp;</span></p>
<p id="t52" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t53" class="pln"><span class="str">            special_method_3:</span><span class="strut">&nbsp;</span></p>
<p id="t54" class="pln"><span class="str">                field1: 'test3'</span><span class="strut">&nbsp;</span></p>
<p id="t55" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t56" class="pln"><span class="str">Once :func:`ParameterContainer.process` is called:</span><span class="strut">&nbsp;</span></p>
<p id="t57" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t58" class="pln"><span class="str">1. ``active_set`` field is used to select parameter set to override parameters in the ``defaults`` block. After this parameter container contains only parameters inside defaults block with overrides.</span><span class="strut">&nbsp;</span></p>
<p id="t59" class="pln"><span class="str">2. Each main level section (``flow``, ``processor``, ``processor_method_parameters`` in the example above) are processed one by one.</span><span class="strut">&nbsp;</span></p>
<p id="t60" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t61" class="pln"><span class="str">    - If section contains ``method``-field, parameters are copied from ``[SECTION_NAME]_method_parameters`` under ``parameters``-field.</span><span class="strut">&nbsp;</span></p>
<p id="t62" class="pln"><span class="str">    - If section contains ``recipe``-field, recipe is first parsed and parameters are copied from ``[SECTION_NAME]_method_parameters`` under ``parameters``-field.</span><span class="strut">&nbsp;</span></p>
<p id="t63" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t64" class="pln"><span class="str">Parameters after processing:</span><span class="strut">&nbsp;</span></p>
<p id="t65" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t66" class="pln"><span class="str">.. code-block:: yaml</span><span class="strut">&nbsp;</span></p>
<p id="t67" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t68" class="pln"><span class="str">    flow:</span><span class="strut">&nbsp;</span></p>
<p id="t69" class="pln"><span class="str">        task1: true</span><span class="strut">&nbsp;</span></p>
<p id="t70" class="pln"><span class="str">        task2: true</span><span class="strut">&nbsp;</span></p>
<p id="t71" class="pln"><span class="str">        task3: true</span><span class="strut">&nbsp;</span></p>
<p id="t72" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t73" class="pln"><span class="str">    processor1:</span><span class="strut">&nbsp;</span></p>
<p id="t74" class="pln"><span class="str">        _hash: 1d511b716b3cd075fbc752750b0c5932</span><span class="strut">&nbsp;</span></p>
<p id="t75" class="pln"><span class="str">        method: special_method_2</span><span class="strut">&nbsp;</span></p>
<p id="t76" class="pln"><span class="str">        field1: 44100</span><span class="strut">&nbsp;</span></p>
<p id="t77" class="pln"><span class="str">        field2: 22050</span><span class="strut">&nbsp;</span></p>
<p id="t78" class="pln"><span class="str">        parameters:</span><span class="strut">&nbsp;</span></p>
<p id="t79" class="pln"><span class="str">            field1: 'test2'</span><span class="strut">&nbsp;</span></p>
<p id="t80" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t81" class="pln"><span class="str">    processor2:</span><span class="strut">&nbsp;</span></p>
<p id="t82" class="pln"><span class="str">        _hash: f17897bd2a133d1c1d1c853e491d2a3a</span><span class="strut">&nbsp;</span></p>
<p id="t83" class="pln"><span class="str">        recipe:</span><span class="strut">&nbsp;</span></p>
<p id="t84" class="pln"><span class="str">            - method: special_method_1</span><span class="strut">&nbsp;</span></p>
<p id="t85" class="pln"><span class="str">            - method: special_method_2</span><span class="strut">&nbsp;</span></p>
<p id="t86" class="pln"><span class="str">            - method: special_method_3</span><span class="strut">&nbsp;</span></p>
<p id="t87" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t88" class="pln"><span class="str">        special_method_1;special_method_2;special_method_3</span><span class="strut">&nbsp;</span></p>
<p id="t89" class="pln"><span class="str">        parameters:</span><span class="strut">&nbsp;</span></p>
<p id="t90" class="pln"><span class="str">            special_method_1:</span><span class="strut">&nbsp;</span></p>
<p id="t91" class="pln"><span class="str">                field1: 'test1'</span><span class="strut">&nbsp;</span></p>
<p id="t92" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t93" class="pln"><span class="str">            special_method_2:</span><span class="strut">&nbsp;</span></p>
<p id="t94" class="pln"><span class="str">                field1: 'test2'</span><span class="strut">&nbsp;</span></p>
<p id="t95" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t96" class="pln"><span class="str">            special_method_3:</span><span class="strut">&nbsp;</span></p>
<p id="t97" class="pln"><span class="str">                field1: 'test3'</span><span class="strut">&nbsp;</span></p>
<p id="t98" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t99" class="pln"><span class="str">Recipe</span><span class="strut">&nbsp;</span></p>
<p id="t100" class="pln"><span class="str">^^^^^^</span><span class="strut">&nbsp;</span></p>
<p id="t101" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t102" class="pln"><span class="str">Recipe special field can be used to select multiple methods. It is specially useful for constructing feature matrix from multiple sources.</span><span class="strut">&nbsp;</span></p>
<p id="t103" class="pln"><span class="str">Method blocks in the string are delimited with ``;`` (e.g. method1;method2;method1).</span><span class="strut">&nbsp;</span></p>
<p id="t104" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t105" class="pln"><span class="str">Individual items in this list can be formatted following way:</span><span class="strut">&nbsp;</span></p>
<p id="t106" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t107" class="pln"><span class="str">- [method_name (string)]                                                       => full vector</span><span class="strut">&nbsp;</span></p>
<p id="t108" class="pln"><span class="str">- [method_name (string)]=[start index (int)]-[end index (int)]                 => default channel 0 and vector [start:end]</span><span class="strut">&nbsp;</span></p>
<p id="t109" class="pln"><span class="str">- [method_name (string)]=[channel (int)]:[start index (int)]-[end index (int)] => specified channel and vector [start:end]</span><span class="strut">&nbsp;</span></p>
<p id="t110" class="pln"><span class="str">- [method_name (string)]=1,2,3,4,5                                             => vector [1,2,3,4,4]</span><span class="strut">&nbsp;</span></p>
<p id="t111" class="pln"><span class="str">- [method_name (string)]=0                                                     => specified channel and full vector</span><span class="strut">&nbsp;</span></p>
<p id="t112" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t113" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t114" class="pln"><span class="str">Paths and parameter hash</span><span class="strut">&nbsp;</span></p>
<p id="t115" class="pln"><span class="str">^^^^^^^^^^^^^^^^^^^^^^^^</span><span class="strut">&nbsp;</span></p>
<p id="t116" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t117" class="pln"><span class="str">Parameters under each section is used to form parameter hash. ParameterContainer's property</span><span class="strut">&nbsp;</span></p>
<p id="t118" class="pln"><span class="str">:py:attr:`dcase_framework.parameters.ParameterContainer.path_structure` defines how these section wise parameter hashes</span><span class="strut">&nbsp;</span></p>
<p id="t119" class="pln"><span class="str">are used to form storage paths for each section. The main idea is that when parameters change path will change and when</span><span class="strut">&nbsp;</span></p>
<p id="t120" class="pln"><span class="str">the parameters are the same path is the same allowing reusing already stored data (process with correct parameters).</span><span class="strut">&nbsp;</span></p>
<p id="t121" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t122" class="pln"><span class="str">**Path structure**</span><span class="strut">&nbsp;</span></p>
<p id="t123" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t124" class="pln"><span class="str">Example definition for path structure.</span><span class="strut">&nbsp;</span></p>
<p id="t125" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t126" class="pln"><span class="str">.. code-block:: python</span><span class="strut">&nbsp;</span></p>
<p id="t127" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t128" class="pln"><span class="str">    self.path_structure = {</span><span class="strut">&nbsp;</span></p>
<p id="t129" class="pln"><span class="str">        'feature_extractor': [</span><span class="strut">&nbsp;</span></p>
<p id="t130" class="pln"><span class="str">            'feature_extractor.parameters.*'</span><span class="strut">&nbsp;</span></p>
<p id="t131" class="pln"><span class="str">        ],</span><span class="strut">&nbsp;</span></p>
<p id="t132" class="pln"><span class="str">        'feature_normalizer': [</span><span class="strut">&nbsp;</span></p>
<p id="t133" class="pln"><span class="str">            'feature_extractor.parameters.*'</span><span class="strut">&nbsp;</span></p>
<p id="t134" class="pln"><span class="str">        ],</span><span class="strut">&nbsp;</span></p>
<p id="t135" class="pln"><span class="str">        'learner': [</span><span class="strut">&nbsp;</span></p>
<p id="t136" class="pln"><span class="str">            'feature_extractor',</span><span class="strut">&nbsp;</span></p>
<p id="t137" class="pln"><span class="str">            'feature_normalizer',</span><span class="strut">&nbsp;</span></p>
<p id="t138" class="pln"><span class="str">            'feature_aggregator',</span><span class="strut">&nbsp;</span></p>
<p id="t139" class="pln"><span class="str">            'learner'</span><span class="strut">&nbsp;</span></p>
<p id="t140" class="pln"><span class="str">        ],</span><span class="strut">&nbsp;</span></p>
<p id="t141" class="pln"><span class="str">        'recognizer': [</span><span class="strut">&nbsp;</span></p>
<p id="t142" class="pln"><span class="str">            'feature_extractor',</span><span class="strut">&nbsp;</span></p>
<p id="t143" class="pln"><span class="str">            'feature_normalizer',</span><span class="strut">&nbsp;</span></p>
<p id="t144" class="pln"><span class="str">            'feature_aggregator',</span><span class="strut">&nbsp;</span></p>
<p id="t145" class="pln"><span class="str">            'learner',</span><span class="strut">&nbsp;</span></p>
<p id="t146" class="pln"><span class="str">            'recognizer'</span><span class="strut">&nbsp;</span></p>
<p id="t147" class="pln"><span class="str">        ],</span><span class="strut">&nbsp;</span></p>
<p id="t148" class="pln"><span class="str">        'evaluator': [</span><span class="strut">&nbsp;</span></p>
<p id="t149" class="pln"><span class="str">        ]</span><span class="strut">&nbsp;</span></p>
<p id="t150" class="pln"><span class="str">    }</span><span class="strut">&nbsp;</span></p>
<p id="t151" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t152" class="pln"><span class="str">One can use wild card for lists (e.g. ``feature_extractor.parameters.*``), in this case each item in the list is producing individual path. This can be used to</span><span class="strut">&nbsp;</span></p>
<p id="t153" class="pln"><span class="str">make paths, for examples, for each feature extractor separately.</span><span class="strut">&nbsp;</span></p>
<p id="t154" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t155" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t156" class="pln"><span class="str">This will lead following paths:</span><span class="strut">&nbsp;</span></p>
<p id="t157" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t158" class="pln"><span class="str">.. code-block:: txt</span><span class="strut">&nbsp;</span></p>
<p id="t159" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t160" class="pln"><span class="str">    feature_extractor/feature_extractor_68a40f5e3b77df9564aaa68c92e95be9/</span><span class="strut">&nbsp;</span></p>
<p id="t161" class="pln"><span class="str">    feature_extractor/feature_extractor_74c5e3ce692f5973c5071c1cf0a89ee0/</span><span class="strut">&nbsp;</span></p>
<p id="t162" class="pln"><span class="str">    feature_extractor/feature_extractor_661304966061610bc09744166b10f76e/</span><span class="strut">&nbsp;</span></p>
<p id="t163" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t164" class="pln"><span class="str">    feature_normalizer/feature_extractor_68a40f5e3b77df9564aaa68c92e95be9/</span><span class="strut">&nbsp;</span></p>
<p id="t165" class="pln"><span class="str">    feature_normalizer/feature_extractor_74c5e3ce692f5973c5071c1cf0a89ee0/</span><span class="strut">&nbsp;</span></p>
<p id="t166" class="pln"><span class="str">    feature_normalizer/feature_extractor_661304966061610bc09744166b10f76e/</span><span class="strut">&nbsp;</span></p>
<p id="t167" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t168" class="pln"><span class="str">    learner/feature_extractor_5ca1f32c65b3eea59e1bb27b09b747ea/feature_normalizer_67b9b20ff555e8eaee22f5e50695df8b/feature_aggregator_baaf606d9ac1eaca43a6a24b599998a9/learner_624a422b47a32e20b90ad6e6151057f8</span><span class="strut">&nbsp;</span></p>
<p id="t169" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t170" class="pln"><span class="str">    recognizer/feature_extractor_5ca1f32c65b3eea59e1bb27b09b747ea/feature_normalizer_67b9b20ff555e8eaee22f5e50695df8b/feature_aggregator_baaf606d9ac1eaca43a6a24b599998a9/learner_624a422b47a32e20b90ad6e6151057f8/recognizer_08c503973f61ef4c4c5f7c56709d801c</span><span class="strut">&nbsp;</span></p>
<p id="t171" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t172" class="pln"><span class="str">Parameter section used to form hash will be saved in each sub folder (parameters.yaml) to make it easier handle files manually if needed.</span><span class="strut">&nbsp;</span></p>
<p id="t173" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t174" class="pln"><span class="str">**Hash**</span><span class="strut">&nbsp;</span></p>
<p id="t175" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t176" class="pln"><span class="str">Parameter hash value is md5 hash for stringified parameter dict of the section, with a few clean ups helping to keep</span><span class="strut">&nbsp;</span></p>
<p id="t177" class="pln"><span class="str">hash compatible when extending parameter selection in the section later. Following rules are used:</span><span class="strut">&nbsp;</span></p>
<p id="t178" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t179" class="pln"><span class="str">- If section contains field ``enable`` with value ``False`` all other fields inside this section are excluded from the parameter hash calculation. This will make the hash robust if section is not used but still unused parameters are changed.</span><span class="strut">&nbsp;</span></p>
<p id="t180" class="pln"><span class="str">- If section contains fields with value ``False``, this field is excluded from the parameter hash calculation. This will enable to add new flag parameters, without changing hash, just define the new flag so that previous behaviour is happening when this field is set to false.</span><span class="strut">&nbsp;</span></p>
<p id="t181" class="pln"><span class="str">- If section contains any of the ``non_hashable_fields`` fields, those are excluded from the parameter hash calculation. These fields are set when :class:`ParameterContainer` is constructed, and they usually are fields used to print various values to the console. These fields do not change the system output to be saved onto disk, and hence they are excluded from hash.</span><span class="strut">&nbsp;</span></p>
<p id="t182" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t183" class="pln"><span class="str">Use :py:attr:`dcase_framework.parameters.ParameterContainer.non_hashable_fields` to exclude fields from hash. use  :py:attr:`dcase_framework.parameters.ParameterContainer.control_sections` to omit hash calculation for parameter</span><span class="strut">&nbsp;</span></p>
<p id="t184" class="pln"><span class="str">sections which do not needed it.</span><span class="strut">&nbsp;</span></p>
<p id="t185" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t186" class="pln"><span class="str">ParameterContainer</span><span class="strut">&nbsp;</span></p>
<p id="t187" class="pln"><span class="str">^^^^^^^^^^^^^^^^^^</span><span class="strut">&nbsp;</span></p>
<p id="t188" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t189" class="pln"><span class="str">Usage examples:</span><span class="strut">&nbsp;</span></p>
<p id="t190" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t191" class="pln"><span class="str">.. code-block:: python</span><span class="strut">&nbsp;</span></p>
<p id="t192" class="pln"><span class="str">    :linenos:</span><span class="strut">&nbsp;</span></p>
<p id="t193" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t194" class="pln"><span class="str">    # Load parameters</span><span class="strut">&nbsp;</span></p>
<p id="t195" class="pln"><span class="str">    params = ParameterContainer().load(filename='parameters.yaml')</span><span class="strut">&nbsp;</span></p>
<p id="t196" class="pln"><span class="str">    # Process parameters</span><span class="strut">&nbsp;</span></p>
<p id="t197" class="pln"><span class="str">    params.process()</span><span class="strut">&nbsp;</span></p>
<p id="t198" class="pln"><span class="str">    # Print parameters</span><span class="strut">&nbsp;</span></p>
<p id="t199" class="pln"><span class="str">    print(params)</span><span class="strut">&nbsp;</span></p>
<p id="t200" class="pln"><span class="str">    # Get parameters</span><span class="strut">&nbsp;</span></p>
<p id="t201" class="pln"><span class="str">    value = get_path('section1.parameter1')</span><span class="strut">&nbsp;</span></p>
<p id="t202" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t203" class="pln"><span class="str">.. autosummary::</span><span class="strut">&nbsp;</span></p>
<p id="t204" class="pln"><span class="str">    :toctree: generated/</span><span class="strut">&nbsp;</span></p>
<p id="t205" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t206" class="pln"><span class="str">    ParameterContainer</span><span class="strut">&nbsp;</span></p>
<p id="t207" class="pln"><span class="str">    ParameterContainer.load</span><span class="strut">&nbsp;</span></p>
<p id="t208" class="pln"><span class="str">    ParameterContainer.save</span><span class="strut">&nbsp;</span></p>
<p id="t209" class="pln"><span class="str">    ParameterContainer.exists</span><span class="strut">&nbsp;</span></p>
<p id="t210" class="pln"><span class="str">    ParameterContainer.get_path</span><span class="strut">&nbsp;</span></p>
<p id="t211" class="pln"><span class="str">    ParameterContainer.show</span><span class="strut">&nbsp;</span></p>
<p id="t212" class="pln"><span class="str">    ParameterContainer.log</span><span class="strut">&nbsp;</span></p>
<p id="t213" class="pln"><span class="str">    ParameterContainer.override</span><span class="strut">&nbsp;</span></p>
<p id="t214" class="pln"><span class="str">    ParameterContainer.process</span><span class="strut">&nbsp;</span></p>
<p id="t215" class="pln"><span class="str">    ParameterContainer.process_method_parameters</span><span class="strut">&nbsp;</span></p>
<p id="t216" class="pln"><span class="str">    ParameterContainer.get_hash</span><span class="strut">&nbsp;</span></p>
<p id="t217" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t218" class="pln"><span class="str">"""</span><span class="strut">&nbsp;</span></p>
<p id="t219" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t220" class="stm run hide_run"><span class="key">from</span> <span class="nam">__future__</span> <span class="key">import</span> <span class="nam">print_function</span><span class="op">,</span> <span class="nam">absolute_import</span><span class="strut">&nbsp;</span></p>
<p id="t221" class="stm run hide_run"><span class="key">from</span> <span class="nam">six</span> <span class="key">import</span> <span class="nam">iteritems</span><span class="strut">&nbsp;</span></p>
<p id="t222" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t223" class="stm run hide_run"><span class="key">import</span> <span class="nam">os</span><span class="strut">&nbsp;</span></p>
<p id="t224" class="stm run hide_run"><span class="key">import</span> <span class="nam">hashlib</span><span class="strut">&nbsp;</span></p>
<p id="t225" class="stm run hide_run"><span class="key">import</span> <span class="nam">json</span><span class="strut">&nbsp;</span></p>
<p id="t226" class="stm run hide_run"><span class="key">import</span> <span class="nam">copy</span><span class="strut">&nbsp;</span></p>
<p id="t227" class="stm run hide_run"><span class="key">import</span> <span class="nam">numpy</span><span class="strut">&nbsp;</span></p>
<p id="t228" class="stm run hide_run"><span class="key">import</span> <span class="nam">itertools</span><span class="strut">&nbsp;</span></p>
<p id="t229" class="stm run hide_run"><span class="key">import</span> <span class="nam">platform</span><span class="strut">&nbsp;</span></p>
<p id="t230" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t231" class="stm run hide_run"><span class="key">from</span> <span class="op">.</span><span class="nam">files</span> <span class="key">import</span> <span class="nam">ParameterFile</span><span class="strut">&nbsp;</span></p>
<p id="t232" class="stm run hide_run"><span class="key">from</span> <span class="op">.</span><span class="nam">containers</span> <span class="key">import</span> <span class="nam">ContainerMixin</span><span class="op">,</span> <span class="nam">DottedDict</span><span class="strut">&nbsp;</span></p>
<p id="t233" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t234" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t235" class="stm run hide_run"><span class="key">class</span> <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">ParameterFile</span><span class="op">,</span> <span class="nam">ContainerMixin</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t236" class="stm run hide_run">    <span class="key">def</span> <span class="nam">__init__</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="op">*</span><span class="nam">args</span><span class="op">,</span> <span class="op">**</span><span class="nam">kwargs</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t237" class="pln">        <span class="str">"""Constructor</span><span class="strut">&nbsp;</span></p>
<p id="t238" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t239" class="pln"><span class="str">        Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t240" class="pln"><span class="str">        ----------</span><span class="strut">&nbsp;</span></p>
<p id="t241" class="pln"><span class="str">        project_base : str</span><span class="strut">&nbsp;</span></p>
<p id="t242" class="pln"><span class="str">            Absolute path to the project root</span><span class="strut">&nbsp;</span></p>
<p id="t243" class="pln"><span class="str">        section_process_order : list, optional</span><span class="strut">&nbsp;</span></p>
<p id="t244" class="pln"><span class="str">            Parameter section processing order. Given dict is used to override internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t245" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t246" class="pln"><span class="str">        path_structure : dict of lists, optional</span><span class="strut">&nbsp;</span></p>
<p id="t247" class="pln"><span class="str">            Defines how paths are created, section hash is used to create unique folder names. Given dict is used to</span><span class="strut">&nbsp;</span></p>
<p id="t248" class="pln"><span class="str">            override internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t249" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t250" class="pln"><span class="str">        method_dependencies : dict of dicts, optional</span><span class="strut">&nbsp;</span></p>
<p id="t251" class="pln"><span class="str">            Given dict is used to override internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t252" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t253" class="pln"><span class="str">        magic_field : dict, optional</span><span class="strut">&nbsp;</span></p>
<p id="t254" class="pln"><span class="str">            Dict of field names for specific tasks. Given dict is used to override internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t255" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t256" class="pln"><span class="str">        non_hashable_fields : list, optional</span><span class="strut">&nbsp;</span></p>
<p id="t257" class="pln"><span class="str">            List of fields skipped when parameter hash for the section is calculated. Given list is used to override</span><span class="strut">&nbsp;</span></p>
<p id="t258" class="pln"><span class="str">            internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t259" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t260" class="pln"><span class="str">        control_sections : list, optional</span><span class="strut">&nbsp;</span></p>
<p id="t261" class="pln"><span class="str">            List of top level sections used for framework control, for these section no hash is calculated. Given list</span><span class="strut">&nbsp;</span></p>
<p id="t262" class="pln"><span class="str">            is used to override internal default list.</span><span class="strut">&nbsp;</span></p>
<p id="t263" class="pln"><span class="str">            Default value "None"</span><span class="strut">&nbsp;</span></p>
<p id="t264" class="pln"><span class="str">        """</span><span class="strut">&nbsp;</span></p>
<p id="t265" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t266" class="stm run hide_run">        <span class="nam">super</span><span class="op">(</span><span class="nam">ParameterContainer</span><span class="op">,</span> <span class="nam">self</span><span class="op">)</span><span class="op">.</span><span class="nam">__init__</span><span class="op">(</span><span class="op">*</span><span class="nam">args</span><span class="op">,</span> <span class="op">**</span><span class="nam">kwargs</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t267" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t268" class="pln">        <span class="com"># Mark container non-processed</span><span class="strut">&nbsp;</span></p>
<p id="t269" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">processed</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t270" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t271" class="pln">        <span class="com"># Project base path</span><span class="strut">&nbsp;</span></p>
<p id="t272" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'project_base'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t273" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span> <span class="op">=</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'project_base'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t274" class="pln">        <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t275" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">dirname</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">realpath</span><span class="op">(</span><span class="nam">__file__</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t276" class="stm run hide_run">            <span class="key">if</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">)</span><span class="op">[</span><span class="num">1</span><span class="op">]</span> <span class="op">==</span> <span class="str">'src'</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t277" class="pln">                <span class="com"># If we are in 'src' folder remove one level</span><span class="strut">&nbsp;</span></p>
<p id="t278" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t279" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t280" class="pln">        <span class="com"># Define section processing order</span><span class="strut">&nbsp;</span></p>
<p id="t281" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">section_process_order</span> <span class="op">=</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t282" class="pln">            <span class="str">'flow'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t283" class="pln">            <span class="str">'general'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t284" class="pln">            <span class="str">'logging'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t285" class="pln">            <span class="str">'path'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t286" class="pln">            <span class="str">'dataset'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t287" class="pln">            <span class="str">'dataset_method_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t288" class="pln">            <span class="str">'feature_extractor'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t289" class="pln">            <span class="str">'feature_extractor_method_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t290" class="pln">            <span class="str">'feature_stacker'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t291" class="pln">            <span class="str">'feature_stacker_method_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t292" class="pln">            <span class="str">'feature_normalizer'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t293" class="pln">            <span class="str">'feature_normalizer_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t294" class="pln">            <span class="str">'feature_aggregator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t295" class="pln">            <span class="str">'feature_aggregator_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t296" class="pln">            <span class="str">'learner'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t297" class="pln">            <span class="str">'recognizer'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t298" class="pln">            <span class="str">'learner_method_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t299" class="pln">            <span class="str">'recognizer_method_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t300" class="pln">            <span class="str">'evaluator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t301" class="pln">        <span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t302" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'section_process_order'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t303" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">path_structure</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'section_process_order'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t304" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t305" class="pln">        <span class="com"># Define how paths are constructed from section hashes</span><span class="strut">&nbsp;</span></p>
<p id="t306" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">path_structure</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t307" class="pln">            <span class="str">'feature_extractor'</span><span class="op">:</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t308" class="pln">                <span class="str">'feature_extractor.parameters.*'</span><span class="strut">&nbsp;</span></p>
<p id="t309" class="pln">            <span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t310" class="pln">            <span class="str">'feature_normalizer'</span><span class="op">:</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t311" class="pln">                <span class="str">'feature_extractor.parameters.*'</span><span class="strut">&nbsp;</span></p>
<p id="t312" class="pln">            <span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t313" class="pln">            <span class="str">'learner'</span><span class="op">:</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t314" class="pln">                <span class="str">'feature_extractor'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t315" class="pln">                <span class="str">'feature_stacker'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t316" class="pln">                <span class="str">'feature_normalizer'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t317" class="pln">                <span class="str">'feature_aggregator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t318" class="pln">                <span class="str">'learner'</span><span class="strut">&nbsp;</span></p>
<p id="t319" class="pln">            <span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t320" class="pln">            <span class="str">'recognizer'</span><span class="op">:</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t321" class="pln">                <span class="str">'feature_extractor'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t322" class="pln">                <span class="str">'feature_stacker'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t323" class="pln">                <span class="str">'feature_normalizer'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t324" class="pln">                <span class="str">'feature_aggregator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t325" class="pln">                <span class="str">'learner'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t326" class="pln">                <span class="str">'recognizer'</span><span class="strut">&nbsp;</span></p>
<p id="t327" class="pln">            <span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t328" class="pln">            <span class="str">'evaluator'</span><span class="op">:</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t329" class="pln">            <span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t330" class="pln">        <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t331" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'path_structure'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t332" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">path_structure</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'path_structure'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t333" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t334" class="pln">        <span class="com"># Method dependencies map</span><span class="strut">&nbsp;</span></p>
<p id="t335" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t336" class="pln">            <span class="str">'feature_extractor'</span><span class="op">:</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t337" class="pln">                <span class="str">'mel'</span><span class="op">:</span> <span class="nam">None</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t338" class="pln">                <span class="str">'mfcc'</span><span class="op">:</span> <span class="nam">None</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t339" class="pln">                <span class="str">'mfcc_delta'</span><span class="op">:</span> <span class="str">'feature_extractor.mfcc'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t340" class="pln">                <span class="str">'mfcc_acceleration'</span><span class="op">:</span> <span class="str">'feature_extractor.mfcc'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t341" class="pln">            <span class="op">}</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t342" class="pln">        <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t343" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'method_dependencies'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t344" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'method_dependencies'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t345" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t346" class="pln">        <span class="com"># Map for magic field names</span><span class="strut">&nbsp;</span></p>
<p id="t347" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t348" class="pln">            <span class="str">'default-parameters'</span><span class="op">:</span> <span class="str">'defaults'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t349" class="pln">            <span class="str">'set-list'</span><span class="op">:</span> <span class="str">'sets'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t350" class="pln">            <span class="str">'set-id'</span><span class="op">:</span> <span class="str">'set_id'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t351" class="pln">            <span class="str">'active-set'</span><span class="op">:</span> <span class="str">'active_set'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t352" class="pln">            <span class="str">'parameters'</span><span class="op">:</span> <span class="str">'parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t353" class="pln">            <span class="str">'method'</span><span class="op">:</span> <span class="str">'method'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t354" class="pln">            <span class="str">'recipe'</span><span class="op">:</span> <span class="str">'recipe'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t355" class="pln">            <span class="str">'path'</span><span class="op">:</span> <span class="str">'path'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t356" class="pln">            <span class="str">'flow'</span><span class="op">:</span> <span class="str">'flow'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t357" class="pln">            <span class="str">'logging'</span><span class="op">:</span> <span class="str">'logging'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t358" class="pln">            <span class="str">'general'</span><span class="op">:</span> <span class="str">'general'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t359" class="pln">            <span class="str">'evaluator'</span><span class="op">:</span> <span class="str">'evaluator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t360" class="pln">        <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t361" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'magic_field'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t362" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'magic_field'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t363" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t364" class="pln">        <span class="com"># Fields to be skipped when parameter hash is calculated</span><span class="strut">&nbsp;</span></p>
<p id="t365" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">non_hashable_fields</span> <span class="op">=</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t366" class="pln">            <span class="str">'_hash'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t367" class="pln">            <span class="str">'verbose'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t368" class="pln">            <span class="str">'print_system_progress'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t369" class="pln">            <span class="str">'log_system_parameters'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t370" class="pln">            <span class="str">'log_system_progress'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t371" class="pln">            <span class="str">'log_learner_status'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t372" class="pln">            <span class="str">'show_model_information'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t373" class="pln">            <span class="str">'use_ascii_progress_bar'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t374" class="pln">            <span class="str">'label'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t375" class="pln">            <span class="str">'active_scenes'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t376" class="pln">            <span class="str">'active_events'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t377" class="pln">            <span class="str">'plotting_rate'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t378" class="pln">            <span class="str">'focus_span'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t379" class="pln">            <span class="str">'output_format'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t380" class="pln">        <span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t381" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'non_hashable_fields'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t382" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">non_hashable_fields</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'non_hashable_fields'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t383" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t384" class="pln">        <span class="com"># Parameters sections which will not be included in the master parameter hash</span><span class="strut">&nbsp;</span></p>
<p id="t385" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span> <span class="op">=</span> <span class="op">[</span><span class="strut">&nbsp;</span></p>
<p id="t386" class="pln">            <span class="str">'flow'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t387" class="pln">            <span class="str">'path'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t388" class="pln">            <span class="str">'logging'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t389" class="pln">            <span class="str">'general'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t390" class="pln">            <span class="str">'evaluator'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t391" class="pln">        <span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t392" class="stm run hide_run">        <span class="key">if</span> <span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'control_sections'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t393" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">kwargs</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">'control_sections'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t394" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t395" class="stm run hide_run">    <span class="key">def</span> <span class="nam">override</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">override</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t396" class="pln">        <span class="str">"""Override container content recursively.</span><span class="strut">&nbsp;</span></p>
<p id="t397" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t398" class="pln"><span class="str">        Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t399" class="pln"><span class="str">        ----------</span><span class="strut">&nbsp;</span></p>
<p id="t400" class="pln"><span class="str">        override : dict, str</span><span class="strut">&nbsp;</span></p>
<p id="t401" class="pln"><span class="str">            Depending type following is done:</span><span class="strut">&nbsp;</span></p>
<p id="t402" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t403" class="pln"><span class="str">            - If dict given, this is used directly to override parameters in the container.</span><span class="strut">&nbsp;</span></p>
<p id="t404" class="pln"><span class="str">            - If str is given which is a filename of existing file on disk, parameter file is loaded and it is used to override container parameters</span><span class="strut">&nbsp;</span></p>
<p id="t405" class="pln"><span class="str">            - If str is given which contains JSON formatted parameters, content is used to override container parameters</span><span class="strut">&nbsp;</span></p>
<p id="t406" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t407" class="pln"><span class="str">        Raises</span><span class="strut">&nbsp;</span></p>
<p id="t408" class="pln"><span class="str">        ------</span><span class="strut">&nbsp;</span></p>
<p id="t409" class="pln"><span class="str">        ImportError:</span><span class="strut">&nbsp;</span></p>
<p id="t410" class="pln"><span class="str">            JSON import failed</span><span class="strut">&nbsp;</span></p>
<p id="t411" class="pln"><span class="str">        ValueError:</span><span class="strut">&nbsp;</span></p>
<p id="t412" class="pln"><span class="str">            Not JSON formatted string given</span><span class="strut">&nbsp;</span></p>
<p id="t413" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t414" class="pln"><span class="str">        Returns</span><span class="strut">&nbsp;</span></p>
<p id="t415" class="pln"><span class="str">        -------</span><span class="strut">&nbsp;</span></p>
<p id="t416" class="pln"><span class="str">        self</span><span class="strut">&nbsp;</span></p>
<p id="t417" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t418" class="pln"><span class="str">        """</span><span class="strut">&nbsp;</span></p>
<p id="t419" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t420" class="stm run hide_run">        <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">override</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t421" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">merge</span><span class="op">(</span><span class="nam">override</span><span class="op">=</span><span class="nam">override</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t422" class="stm run hide_run">        <span class="key">elif</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">override</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span> <span class="key">and</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isfile</span><span class="op">(</span><span class="nam">override</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t423" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">merge</span><span class="op">(</span><span class="nam">override</span><span class="op">=</span><span class="nam">ParameterFile</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">override</span><span class="op">)</span><span class="op">.</span><span class="nam">load</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t424" class="stm run hide_run">        <span class="key">elif</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">override</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t425" class="stm run hide_run">            <span class="key">try</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t426" class="stm run hide_run">                <span class="key">try</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t427" class="stm run hide_run">                    <span class="key">import</span> <span class="nam">ujson</span> <span class="key">as</span> <span class="nam">json</span><span class="strut">&nbsp;</span></p>
<p id="t428" class="stm mis">                <span class="key">except</span> <span class="nam">ImportError</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t429" class="stm mis">                    <span class="key">try</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t430" class="stm mis">                        <span class="key">import</span> <span class="nam">json</span><span class="strut">&nbsp;</span></p>
<p id="t431" class="stm mis">                    <span class="key">except</span> <span class="nam">ImportError</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t432" class="stm mis">                        <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: Unable to import json module'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t433" class="pln">                            <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="strut">&nbsp;</span></p>
<p id="t434" class="pln">                        <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t435" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t436" class="stm mis">                        <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t437" class="stm mis">                        <span class="key">raise</span> <span class="nam">ImportError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t438" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t439" class="stm run hide_run">                <span class="nam">self</span><span class="op">.</span><span class="nam">merge</span><span class="op">(</span><span class="nam">override</span><span class="op">=</span><span class="nam">json</span><span class="op">.</span><span class="nam">loads</span><span class="op">(</span><span class="nam">override</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t440" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t441" class="stm mis">            <span class="key">except</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t442" class="stm mis">                <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: Not JSON formatted string given'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t443" class="pln">                    <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="strut">&nbsp;</span></p>
<p id="t444" class="pln">                <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t445" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t446" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t447" class="stm mis">                <span class="key">raise</span> <span class="nam">ValueError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t448" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t449" class="stm run hide_run">        <span class="key">return</span> <span class="nam">self</span><span class="strut">&nbsp;</span></p>
<p id="t450" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t451" class="stm run hide_run">    <span class="key">def</span> <span class="nam">process</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">create_directories</span><span class="op">=</span><span class="nam">True</span><span class="op">,</span> <span class="nam">create_parameter_hints</span><span class="op">=</span><span class="nam">True</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t452" class="pln">        <span class="str">"""Process parameters</span><span class="strut">&nbsp;</span></p>
<p id="t453" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t454" class="pln"><span class="str">        Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t455" class="pln"><span class="str">        ----------</span><span class="strut">&nbsp;</span></p>
<p id="t456" class="pln"><span class="str">        create_directories : bool</span><span class="strut">&nbsp;</span></p>
<p id="t457" class="pln"><span class="str">            Create directories</span><span class="strut">&nbsp;</span></p>
<p id="t458" class="pln"><span class="str">            Default value "True"</span><span class="strut">&nbsp;</span></p>
<p id="t459" class="pln"><span class="str">        create_parameter_hints : bool</span><span class="strut">&nbsp;</span></p>
<p id="t460" class="pln"><span class="str">            Create parameters files to all data folders</span><span class="strut">&nbsp;</span></p>
<p id="t461" class="pln"><span class="str">            Default value "True"</span><span class="strut">&nbsp;</span></p>
<p id="t462" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t463" class="pln"><span class="str">        Raises</span><span class="strut">&nbsp;</span></p>
<p id="t464" class="pln"><span class="str">        ------</span><span class="strut">&nbsp;</span></p>
<p id="t465" class="pln"><span class="str">        ValueError:</span><span class="strut">&nbsp;</span></p>
<p id="t466" class="pln"><span class="str">            No valid active set given</span><span class="strut">&nbsp;</span></p>
<p id="t467" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t468" class="pln"><span class="str">        Returns</span><span class="strut">&nbsp;</span></p>
<p id="t469" class="pln"><span class="str">        -------</span><span class="strut">&nbsp;</span></p>
<p id="t470" class="pln"><span class="str">        self</span><span class="strut">&nbsp;</span></p>
<p id="t471" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t472" class="pln"><span class="str">        """</span><span class="strut">&nbsp;</span></p>
<p id="t473" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t474" class="stm run hide_run">        <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> <span class="op">==</span> <span class="num">0</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t475" class="stm mis">            <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: Parameter container empty'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t476" class="pln">                <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="strut">&nbsp;</span></p>
<p id="t477" class="pln">            <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t478" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t479" class="stm mis">            <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t480" class="stm mis">            <span class="key">raise</span> <span class="nam">IOError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t481" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t482" class="stm run hide_run">        <span class="key">if</span> <span class="key">not</span> <span class="nam">self</span><span class="op">.</span><span class="nam">processed</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t483" class="stm run hide_run">            <span class="key">for</span> <span class="nam">section_id</span><span class="op">,</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t484" class="stm run hide_run">                <span class="key">if</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t485" class="stm run hide_run">                    <span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span><span class="op">[</span><span class="nam">section_id</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t486" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t487" class="stm run hide_run">            <span class="key">if</span> <span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'default-parameters'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t488" class="pln">               <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'set-list'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t489" class="pln">               <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'active-set'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t490" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t491" class="stm run hide_run">                <span class="nam">default_params</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'default-parameters'</span><span class="op">]</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t492" class="stm run hide_run">                <span class="nam">active_set_id</span> <span class="op">=</span> <span class="nam">self</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'active-set'</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t493" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t494" class="stm run hide_run">                <span class="nam">override_params</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t495" class="pln">                    <span class="nam">self</span><span class="op">.</span><span class="nam">_search_list_of_dictionaries</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t496" class="pln">                        <span class="nam">key</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'set-id'</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t497" class="pln">                        <span class="nam">value</span><span class="op">=</span><span class="nam">active_set_id</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t498" class="pln">                        <span class="nam">list_of_dictionaries</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'set-list'</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t499" class="pln">                    <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t500" class="pln">                <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t501" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t502" class="stm run hide_run">                <span class="key">if</span> <span class="key">not</span> <span class="nam">override_params</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t503" class="stm mis">                    <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: No valid active set given [{set_name}]'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t504" class="pln">                        <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t505" class="pln">                        <span class="nam">set_name</span><span class="op">=</span><span class="nam">active_set_id</span><span class="strut">&nbsp;</span></p>
<p id="t506" class="pln">                    <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t507" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t508" class="stm mis">                    <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t509" class="stm mis">                    <span class="key">raise</span> <span class="nam">ValueError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t510" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t511" class="stm run hide_run">                <span class="nam">dict</span><span class="op">.</span><span class="nam">clear</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span>                            <span class="com"># Empty current content</span><span class="strut">&nbsp;</span></p>
<p id="t512" class="stm run hide_run">                <span class="nam">dict</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">default_params</span><span class="op">)</span>           <span class="com"># Insert default parameters</span><span class="strut">&nbsp;</span></p>
<p id="t513" class="stm run hide_run">                <span class="nam">self</span><span class="op">[</span><span class="str">'active_set'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">active_set_id</span><span class="strut">&nbsp;</span></p>
<p id="t514" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t515" class="stm run hide_run">                <span class="nam">self</span><span class="op">.</span><span class="nam">merge</span><span class="op">(</span><span class="nam">override</span><span class="op">=</span><span class="nam">override_params</span><span class="op">)</span>        <span class="com"># Merge override parameters into default parameters</span><span class="strut">&nbsp;</span></p>
<p id="t516" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t517" class="stm run hide_run">            <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'default-parameters'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t518" class="stm mis">                <span class="nam">default_params</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'default-parameters'</span><span class="op">]</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t519" class="stm mis">                <span class="nam">dict</span><span class="op">.</span><span class="nam">clear</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t520" class="stm mis">                <span class="nam">dict</span><span class="op">.</span><span class="nam">update</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">default_params</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t521" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t522" class="pln">            <span class="com"># Get processing order for sections</span><span class="strut">&nbsp;</span></p>
<p id="t523" class="stm run hide_run">            <span class="nam">section_list</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t524" class="stm run hide_run">            <span class="key">for</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">section_process_order</span> <span class="op">+</span> <span class="nam">list</span><span class="op">(</span><span class="nam">set</span><span class="op">(</span><span class="nam">list</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keys</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">)</span> <span class="op">-</span> <span class="nam">set</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">section_process_order</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t525" class="stm run hide_run">                <span class="key">if</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">self</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t526" class="stm run hide_run">                    <span class="nam">section_list</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">section</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t527" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t528" class="pln">            <span class="com"># Parameter processing starts</span><span class="strut">&nbsp;</span></p>
<p id="t529" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_convert_main_level_to_dotted</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t530" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t531" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_preprocess_paths</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t532" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t533" class="pln">            <span class="com"># 1. Process parameters</span><span class="strut">&nbsp;</span></p>
<p id="t534" class="stm run hide_run">            <span class="key">for</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">section_list</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t535" class="stm run hide_run">                <span class="nam">field_process_func</span> <span class="op">=</span> <span class="nam">getattr</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="str">'_process_{}'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="nam">section</span><span class="op">)</span><span class="op">,</span> <span class="nam">None</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t536" class="stm run hide_run">                <span class="key">if</span> <span class="nam">field_process_func</span> <span class="key">is</span> <span class="key">not</span> <span class="nam">None</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t537" class="stm run hide_run">                    <span class="nam">field_process_func</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t538" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t539" class="stm run hide_run">                <span class="key">if</span> <span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t540" class="pln">                   <span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span> <span class="key">or</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">)</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t541" class="pln">                    <span class="nam">section</span><span class="op">+</span><span class="str">'_method_parameters'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t542" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t543" class="stm run hide_run">                    <span class="nam">field_process_parameters_func</span> <span class="op">=</span> <span class="nam">getattr</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="str">'_process_{}_method_parameters'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="nam">section</span><span class="op">)</span><span class="op">,</span> <span class="nam">None</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t544" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">field_process_parameters_func</span> <span class="key">is</span> <span class="key">not</span> <span class="nam">None</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t545" class="stm run hide_run">                        <span class="nam">field_process_parameters_func</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t546" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t547" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_add_hash_to_method_parameters</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t548" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t549" class="pln">            <span class="com"># 2. Methods and recipies</span><span class="strut">&nbsp;</span></p>
<p id="t550" class="stm run hide_run">            <span class="key">for</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">section_list</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t551" class="stm run hide_run">                <span class="nam">self</span><span class="op">.</span><span class="nam">process_method_parameters</span><span class="op">(</span><span class="nam">section</span><span class="op">=</span><span class="nam">section</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t552" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t553" class="pln">            <span class="com"># 3. Inject dependencies</span><span class="strut">&nbsp;</span></p>
<p id="t554" class="stm run hide_run">            <span class="key">for</span> <span class="nam">section</span> <span class="key">in</span> <span class="nam">section_list</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t555" class="stm run hide_run">                <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span> <span class="key">and</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span> <span class="key">and</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t556" class="stm run hide_run">                    <span class="key">for</span> <span class="nam">key</span><span class="op">,</span> <span class="nam">item</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t557" class="stm run hide_run">                        <span class="key">if</span> <span class="op">(</span><span class="nam">section</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t558" class="pln">                            <span class="nam">key</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span> <span class="key">and</span> <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">key</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t559" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t560" class="stm mis">                            <span class="nam">fields</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">key</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'.'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t561" class="stm mis">                            <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">fields</span><span class="op">)</span> <span class="op">==</span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t562" class="stm mis">                                <span class="nam">item</span><span class="op">[</span><span class="str">'dependency_parameters'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t563" class="pln">                                    <span class="nam">self</span><span class="op">[</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">key</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t564" class="pln">                                <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t565" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t566" class="stm mis">                                <span class="nam">item</span><span class="op">[</span><span class="str">'dependency_method'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">method_dependencies</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">key</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t567" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t568" class="stm mis">                            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">fields</span><span class="op">)</span> <span class="op">==</span> <span class="num">2</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t569" class="stm mis">                                <span class="nam">item</span><span class="op">[</span><span class="str">'dependency_parameters'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t570" class="pln">                                    <span class="nam">self</span><span class="op">[</span><span class="nam">fields</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">fields</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t571" class="pln">                                <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t572" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t573" class="stm mis">                                <span class="nam">item</span><span class="op">[</span><span class="str">'dependency_method'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">fields</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t574" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t575" class="pln">            <span class="com"># 4. Add hash</span><span class="strut">&nbsp;</span></p>
<p id="t576" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_add_hash_to_main_parameters</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t577" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_add_main_hash</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t578" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t579" class="pln">            <span class="com"># 5. Post process paths</span><span class="strut">&nbsp;</span></p>
<p id="t580" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">_postprocess_paths</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t581" class="pln">                <span class="nam">create_directories</span><span class="op">=</span><span class="nam">create_directories</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t582" class="pln">                <span class="nam">create_parameter_hints</span><span class="op">=</span><span class="nam">create_parameter_hints</span><span class="strut">&nbsp;</span></p>
<p id="t583" class="pln">            <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t584" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t585" class="stm run hide_run">            <span class="nam">self</span><span class="op">.</span><span class="nam">processed</span> <span class="op">=</span> <span class="nam">True</span><span class="strut">&nbsp;</span></p>
<p id="t586" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t587" class="pln">            <span class="com"># 6. Clean up</span><span class="strut">&nbsp;</span></p>
<p id="t588" class="pln">            <span class="com"># self._clean_unused_parameters()</span><span class="strut">&nbsp;</span></p>
<p id="t589" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t590" class="stm run hide_run">        <span class="key">return</span> <span class="nam">self</span><span class="strut">&nbsp;</span></p>
<p id="t591" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t592" class="stm run hide_run">    <span class="key">def</span> <span class="nam">process_method_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">section</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t593" class="pln">        <span class="str">"""Process methods and recipes in the section</span><span class="strut">&nbsp;</span></p>
<p id="t594" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t595" class="pln"><span class="str">        Processing rules for fields:</span><span class="strut">&nbsp;</span></p>
<p id="t596" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t597" class="pln"><span class="str">        - "method" => search for parameters from [section]_method_parameters -section</span><span class="strut">&nbsp;</span></p>
<p id="t598" class="pln"><span class="str">        - "recipe" => parse recipe and search for parameters from [section]_method_parameters -section</span><span class="strut">&nbsp;</span></p>
<p id="t599" class="pln"><span class="str">        - "\*recipe" => parse recipe</span><span class="strut">&nbsp;</span></p>
<p id="t600" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t601" class="pln"><span class="str">        Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t602" class="pln"><span class="str">        ----------</span><span class="strut">&nbsp;</span></p>
<p id="t603" class="pln"><span class="str">        section : str</span><span class="strut">&nbsp;</span></p>
<p id="t604" class="pln"><span class="str">            Section name</span><span class="strut">&nbsp;</span></p>
<p id="t605" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t606" class="pln"><span class="str">        Raises</span><span class="strut">&nbsp;</span></p>
<p id="t607" class="pln"><span class="str">        ------</span><span class="strut">&nbsp;</span></p>
<p id="t608" class="pln"><span class="str">        ValueError:</span><span class="strut">&nbsp;</span></p>
<p id="t609" class="pln"><span class="str">            Invalid method for parameter field</span><span class="strut">&nbsp;</span></p>
<p id="t610" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t611" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t612" class="pln"><span class="str">        Returns</span><span class="strut">&nbsp;</span></p>
<p id="t613" class="pln"><span class="str">        -------</span><span class="strut">&nbsp;</span></p>
<p id="t614" class="pln"><span class="str">            self</span><span class="strut">&nbsp;</span></p>
<p id="t615" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t616" class="pln"><span class="str">        """</span><span class="strut">&nbsp;</span></p>
<p id="t617" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t618" class="pln">        <span class="com"># Inject method parameters</span><span class="strut">&nbsp;</span></p>
<p id="t619" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t620" class="stm run hide_run">            <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t621" class="stm run hide_run">                <span class="key">if</span> <span class="op">(</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span> <span class="key">in</span> <span class="nam">self</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t622" class="pln">                   <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t623" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t624" class="stm run hide_run">                    <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t625" class="pln">                        <span class="nam">self</span><span class="op">[</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t626" class="pln">                    <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t627" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t628" class="pln">                <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t629" class="stm mis">                    <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: Invalid method for parameter field, {field}->method={method}'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t630" class="pln">                        <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t631" class="pln">                        <span class="nam">field</span><span class="op">=</span><span class="nam">section</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t632" class="pln">                        <span class="nam">method</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t633" class="pln">                    <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t634" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t635" class="stm mis">                    <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t636" class="stm mis">                    <span class="key">raise</span> <span class="nam">ValueError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t637" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t638" class="pln">            <span class="com"># parse recipes</span><span class="strut">&nbsp;</span></p>
<p id="t639" class="stm run hide_run">            <span class="key">for</span> <span class="nam">field</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t640" class="stm run hide_run">                <span class="key">if</span> <span class="nam">field</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t641" class="stm run hide_run">                    <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_parse_recipe</span><span class="op">(</span><span class="nam">recipe</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t642" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t643" class="pln">            <span class="com"># Inject recipes</span><span class="strut">&nbsp;</span></p>
<p id="t644" class="stm run hide_run">            <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t645" class="stm run hide_run">                <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t646" class="stm run hide_run">                <span class="key">for</span> <span class="nam">item</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t647" class="stm run hide_run">                    <span class="key">if</span> <span class="op">(</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span> <span class="key">in</span> <span class="nam">self</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t648" class="pln">                       <span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t649" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t650" class="stm run hide_run">                        <span class="nam">self</span><span class="op">[</span><span class="nam">section</span><span class="op">]</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">copy</span><span class="op">.</span><span class="nam">deepcopy</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t651" class="pln">                            <span class="nam">self</span><span class="op">[</span><span class="nam">section</span> <span class="op">+</span> <span class="str">'_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t652" class="pln">                        <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t653" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t654" class="pln">                    <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t655" class="stm mis">                        <span class="nam">message</span> <span class="op">=</span> <span class="str">'{name}: Cannot find any parameters for the method in the recipe field, {field}->recipe={method}'</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t656" class="pln">                            <span class="nam">name</span><span class="op">=</span><span class="nam">self</span><span class="op">.</span><span class="nam">__class__</span><span class="op">.</span><span class="nam">__name__</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t657" class="pln">                            <span class="nam">field</span><span class="op">=</span><span class="nam">section</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t658" class="pln">                            <span class="nam">method</span><span class="op">=</span><span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t659" class="pln">                        <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t660" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t661" class="stm mis">                        <span class="nam">self</span><span class="op">.</span><span class="nam">logger</span><span class="op">.</span><span class="nam">exception</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t662" class="stm mis">                        <span class="key">raise</span> <span class="nam">ValueError</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t663" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t664" class="stm run hide_run">        <span class="key">return</span> <span class="nam">self</span><span class="strut">&nbsp;</span></p>
<p id="t665" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t666" class="stm run hide_run">    <span class="op">@</span><span class="nam">staticmethod</span><span class="strut">&nbsp;</span></p>
<p id="t667" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">,</span> <span class="nam">create</span><span class="op">=</span><span class="nam">True</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t668" class="stm mis">        <span class="key">def</span> <span class="nam">make_path</span><span class="op">(</span><span class="nam">path</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t669" class="stm mis">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">path</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isdir</span><span class="op">(</span><span class="nam">path</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t670" class="stm mis">                <span class="key">try</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t671" class="stm mis">                    <span class="nam">os</span><span class="op">.</span><span class="nam">makedirs</span><span class="op">(</span><span class="nam">path</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t672" class="stm mis">                <span class="key">except</span> <span class="nam">OSError</span> <span class="key">as</span> <span class="nam">exception</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t673" class="stm mis">                    <span class="key">pass</span><span class="strut">&nbsp;</span></p>
<p id="t674" class="stm mis">        <span class="key">if</span> <span class="nam">create</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t675" class="stm mis">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">paths</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t676" class="stm mis">                <span class="nam">make_path</span><span class="op">(</span><span class="nam">paths</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t677" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t678" class="stm mis">            <span class="key">elif</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">paths</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t679" class="stm mis">                <span class="key">for</span> <span class="nam">key</span><span class="op">,</span> <span class="nam">value</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">paths</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t680" class="stm mis">                    <span class="nam">make_path</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t681" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t682" class="stm mis">            <span class="key">elif</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">paths</span><span class="op">,</span> <span class="nam">list</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t683" class="stm mis">                <span class="key">for</span> <span class="nam">value</span> <span class="key">in</span> <span class="nam">paths</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t684" class="stm mis">                    <span class="nam">make_path</span><span class="op">(</span><span class="nam">value</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t685" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t686" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_preprocess_paths</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t687" class="pln">        <span class="com"># Translate separators if in Windows</span><span class="strut">&nbsp;</span></p>
<p id="t688" class="stm run hide_run">        <span class="key">if</span> <span class="nam">platform</span><span class="op">.</span><span class="nam">system</span><span class="op">(</span><span class="op">)</span> <span class="op">==</span> <span class="str">'Windows'</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t689" class="stm mis">            <span class="key">for</span> <span class="nam">path_field</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t690" class="stm mis">                <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">path_field</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">path_field</span><span class="op">]</span><span class="op">.</span><span class="nam">replace</span><span class="op">(</span><span class="str">'/'</span><span class="op">,</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">sep</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t691" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t692" class="pln">        <span class="com"># If given path is relative, make it absolute</span><span class="strut">&nbsp;</span></p>
<p id="t693" class="stm run hide_run">        <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isabs</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.data'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t694" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'data'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t695" class="pln">                                                <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.data'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t696" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t697" class="stm run hide_run">        <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isabs</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.system_base'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t698" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t699" class="pln">                                                       <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.system_base'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t700" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t701" class="stm run hide_run">        <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isabs</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.recognizer_challenge_output'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t702" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'recognizer_challenge_output'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t703" class="pln">                <span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t704" class="pln">                <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.recognizer_challenge_output'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t705" class="pln">            <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t706" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t707" class="stm run hide_run">        <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">isabs</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.logs'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t708" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'logs'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">project_base</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t709" class="pln">                                                <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'path.logs'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t710" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t711" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_postprocess_paths</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">create_directories</span><span class="op">=</span><span class="nam">True</span><span class="op">,</span> <span class="nam">create_parameter_hints</span><span class="op">=</span><span class="nam">True</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t712" class="pln">        <span class="com"># Make sure extended paths exists before saving parameters in them</span><span class="strut">&nbsp;</span></p>
<p id="t713" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t714" class="pln">        <span class="com"># Check main paths</span><span class="strut">&nbsp;</span></p>
<p id="t715" class="stm run hide_run">        <span class="key">if</span> <span class="nam">create_directories</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t716" class="stm mis">            <span class="key">if</span> <span class="str">'data'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t717" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'data'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t718" class="stm mis">            <span class="key">if</span> <span class="str">'system_base'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t719" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t720" class="stm mis">            <span class="key">if</span> <span class="str">'logs'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t721" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'logs'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t722" class="stm mis">            <span class="key">if</span> <span class="str">'recognizer_challenge_output'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t723" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'recognizer_challenge_output'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t724" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t725" class="pln">        <span class="com"># Check path_structure</span><span class="strut">&nbsp;</span></p>
<p id="t726" class="stm run hide_run">        <span class="key">for</span> <span class="nam">field</span><span class="op">,</span> <span class="nam">structure</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">path_structure</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t727" class="stm run hide_run">            <span class="nam">path</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_get_extended_path</span><span class="op">(</span><span class="nam">path_label</span><span class="op">=</span><span class="nam">field</span><span class="op">,</span> <span class="nam">structure</span><span class="op">=</span><span class="nam">structure</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t728" class="stm run hide_run">            <span class="key">if</span> <span class="nam">create_directories</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t729" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_check_paths</span><span class="op">(</span><span class="nam">paths</span><span class="op">=</span><span class="nam">path</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t730" class="stm run hide_run">            <span class="key">if</span> <span class="nam">create_parameter_hints</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t731" class="stm mis">                <span class="nam">self</span><span class="op">.</span><span class="nam">_save_path_parameters</span><span class="op">(</span><span class="strut">&nbsp;</span></p>
<p id="t732" class="pln">                    <span class="nam">base</span><span class="op">=</span><span class="op">[</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span><span class="op">,</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">)</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t733" class="pln">                    <span class="nam">structure</span><span class="op">=</span><span class="nam">structure</span><span class="strut">&nbsp;</span></p>
<p id="t734" class="pln">                <span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t735" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t736" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span> <span class="op">=</span> <span class="nam">path</span><span class="strut">&nbsp;</span></p>
<p id="t737" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t738" class="stm run hide_run">    <span class="op">@</span><span class="nam">staticmethod</span><span class="strut">&nbsp;</span></p>
<p id="t739" class="pln">    <span class="key">def</span> <span class="nam">_join_paths</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t740" class="stm run hide_run">        <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">></span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t741" class="stm run hide_run">            <span class="key">for</span> <span class="nam">i</span><span class="op">,</span> <span class="nam">value</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t742" class="stm run hide_run">                <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">value</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t743" class="stm run hide_run">                    <span class="nam">path_parts</span><span class="op">[</span><span class="nam">i</span><span class="op">]</span> <span class="op">=</span> <span class="op">[</span><span class="nam">value</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t744" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t745" class="stm run hide_run">            <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">2</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t746" class="stm run hide_run">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t747" class="stm run hide_run">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">3</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t748" class="stm mis">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t749" class="stm run hide_run">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">4</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t750" class="stm mis">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">3</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t751" class="stm run hide_run">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">5</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t752" class="stm mis">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">3</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t753" class="pln">                                                    <span class="nam">path_parts</span><span class="op">[</span><span class="num">4</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t754" class="stm run hide_run">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">6</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t755" class="stm run hide_run">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">3</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t756" class="pln">                                                    <span class="nam">path_parts</span><span class="op">[</span><span class="num">4</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">5</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t757" class="stm run hide_run">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">7</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t758" class="stm run hide_run">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">3</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t759" class="pln">                                                    <span class="nam">path_parts</span><span class="op">[</span><span class="num">4</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">5</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">6</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t760" class="stm mis">            <span class="key">elif</span> <span class="nam">len</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">8</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t761" class="stm mis">                <span class="nam">path_parts</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">itertools</span><span class="op">.</span><span class="nam">product</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">2</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">3</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t762" class="pln">                                                    <span class="nam">path_parts</span><span class="op">[</span><span class="num">4</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">5</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">6</span><span class="op">]</span><span class="op">,</span> <span class="nam">path_parts</span><span class="op">[</span><span class="num">7</span><span class="op">]</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t763" class="stm run hide_run">        <span class="nam">out_path</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t764" class="stm run hide_run">        <span class="key">for</span> <span class="nam">l</span> <span class="key">in</span> <span class="nam">path_parts</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t765" class="stm run hide_run">            <span class="nam">out_path</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="op">*</span><span class="nam">l</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t766" class="stm run hide_run">        <span class="key">return</span> <span class="nam">out_path</span><span class="strut">&nbsp;</span></p>
<p id="t767" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t768" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_get_extended_path</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">path_label</span><span class="op">,</span> <span class="nam">structure</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t769" class="stm run hide_run">        <span class="nam">path_parts</span> <span class="op">=</span> <span class="op">[</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span><span class="op">,</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">path_label</span><span class="op">]</span><span class="op">)</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t770" class="stm run hide_run">        <span class="key">if</span> <span class="nam">structure</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t771" class="stm run hide_run">            <span class="nam">keys</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t772" class="stm run hide_run">            <span class="nam">wild_card_found</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t773" class="stm run hide_run">            <span class="key">for</span> <span class="nam">part</span> <span class="key">in</span> <span class="nam">structure</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t774" class="stm run hide_run">                <span class="key">if</span> <span class="str">'*'</span> <span class="key">in</span> <span class="nam">part</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t775" class="stm run hide_run">                    <span class="nam">wild_card_found</span> <span class="op">=</span> <span class="nam">True</span><span class="strut">&nbsp;</span></p>
<p id="t776" class="stm run hide_run">                    <span class="nam">path_</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span><span class="op">[</span><span class="op">:</span><span class="nam">part</span><span class="op">.</span><span class="nam">find</span><span class="op">(</span><span class="str">'*'</span><span class="op">)</span> <span class="op">-</span> <span class="num">1</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t777" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">path_</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t778" class="stm run hide_run">                        <span class="nam">keys</span> <span class="op">=</span> <span class="nam">path_</span><span class="op">.</span><span class="nam">keys</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t779" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t780" class="stm run hide_run">                <span class="nam">param_hash</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span> <span class="op">+</span> <span class="str">'._hash'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t781" class="stm run hide_run">                <span class="key">if</span> <span class="nam">param_hash</span> <span class="key">is</span> <span class="key">not</span> <span class="nam">None</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t782" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">param_hash</span><span class="op">,</span> <span class="nam">list</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t783" class="stm run hide_run">                        <span class="nam">directory_name</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t784" class="stm run hide_run">                        <span class="key">for</span> <span class="nam">h</span> <span class="key">in</span> <span class="nam">param_hash</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t785" class="stm run hide_run">                            <span class="nam">directory_name</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">part</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'.'</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">+</span><span class="str">'_'</span><span class="op">+</span><span class="nam">h</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t786" class="pln">                    <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t787" class="stm run hide_run">                        <span class="nam">directory_name</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_get_directory_name</span><span class="op">(</span><span class="nam">prefix</span><span class="op">=</span><span class="nam">part</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'.'</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">param_hash</span><span class="op">=</span><span class="nam">param_hash</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t788" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t789" class="stm run hide_run">                    <span class="nam">path_parts</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">directory_name</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t790" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t791" class="stm run hide_run">            <span class="nam">paths</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_join_paths</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t792" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t793" class="stm run hide_run">            <span class="key">if</span> <span class="key">not</span> <span class="nam">wild_card_found</span> <span class="key">and</span> <span class="nam">len</span><span class="op">(</span><span class="nam">paths</span><span class="op">)</span> <span class="op">==</span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t794" class="stm run hide_run">                <span class="key">return</span> <span class="nam">paths</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t795" class="pln">            <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t796" class="stm run hide_run">                <span class="key">return</span> <span class="nam">dict</span><span class="op">(</span><span class="nam">zip</span><span class="op">(</span><span class="nam">keys</span><span class="op">,</span> <span class="nam">paths</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t797" class="pln">        <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t798" class="stm run hide_run">            <span class="key">return</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span><span class="op">,</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">path_label</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t799" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t800" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_get_directory_name</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">prefix</span><span class="op">,</span> <span class="nam">param_hash</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t801" class="stm run hide_run">        <span class="key">if</span> <span class="nam">platform</span><span class="op">.</span><span class="nam">system</span><span class="op">(</span><span class="op">)</span> <span class="op">==</span> <span class="str">'Windows'</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t802" class="pln">            <span class="com"># Use short directory names and truncated hash for Windows, as it has path length limit (260)</span><span class="strut">&nbsp;</span></p>
<p id="t803" class="stm mis">            <span class="key">return</span> <span class="nam">param_hash</span><span class="op">[</span><span class="num">0</span><span class="op">:</span><span class="num">20</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t804" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t805" class="pln">        <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t806" class="stm run hide_run">            <span class="key">return</span> <span class="nam">prefix</span> <span class="op">+</span> <span class="str">'_'</span> <span class="op">+</span> <span class="nam">param_hash</span><span class="strut">&nbsp;</span></p>
<p id="t807" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t808" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_save_path_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">base</span><span class="op">,</span> <span class="nam">structure</span><span class="op">,</span> <span class="nam">parameter_filename</span><span class="op">=</span><span class="str">'parameters.yaml'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t809" class="stm mis">        <span class="nam">path_parts</span> <span class="op">=</span> <span class="op">[</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">base</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t810" class="stm mis">        <span class="key">for</span> <span class="nam">part</span> <span class="key">in</span> <span class="nam">structure</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t811" class="stm mis">            <span class="nam">param_hash</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span> <span class="op">+</span> <span class="str">'._hash'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t812" class="stm mis">            <span class="key">if</span> <span class="nam">param_hash</span> <span class="key">is</span> <span class="key">not</span> <span class="nam">None</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t813" class="stm mis">                <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">param_hash</span><span class="op">,</span> <span class="nam">list</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t814" class="stm mis">                    <span class="nam">directory_name</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t815" class="stm mis">                    <span class="key">for</span> <span class="nam">h</span> <span class="key">in</span> <span class="nam">param_hash</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t816" class="stm mis">                        <span class="nam">directory_name</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">part</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'.'</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span> <span class="op">+</span> <span class="str">'_'</span> <span class="op">+</span> <span class="nam">h</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t817" class="pln">                <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t818" class="stm mis">                    <span class="nam">directory_name</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_get_directory_name</span><span class="op">(</span><span class="nam">prefix</span><span class="op">=</span><span class="nam">part</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="str">'.'</span><span class="op">)</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">param_hash</span><span class="op">=</span><span class="nam">param_hash</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t819" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t820" class="stm mis">                <span class="nam">parameters</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t821" class="stm mis">                <span class="nam">path_parts</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">directory_name</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t822" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t823" class="stm mis">                <span class="nam">current_path</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_join_paths</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t824" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t825" class="stm mis">                <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">current_path</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t826" class="stm mis">                    <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">parameters</span><span class="op">)</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">current_path</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">parameter_filename</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t827" class="pln">                <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t828" class="stm mis">                    <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">parameters</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t829" class="stm mis">                        <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">parameters</span><span class="op">)</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">current_path</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="nam">parameter_filename</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t830" class="pln">                    <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t831" class="stm mis">                        <span class="key">for</span> <span class="nam">path_id</span><span class="op">,</span> <span class="nam">path</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">current_path</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t832" class="stm mis">                            <span class="key">if</span> <span class="nam">parameters</span><span class="op">[</span><span class="nam">path_id</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t833" class="stm mis">                                <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">parameters</span><span class="op">[</span><span class="nam">path_id</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">path</span><span class="op">,</span> <span class="nam">parameter_filename</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t834" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t835" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_save_path_parameters_all</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t836" class="stm mis">        <span class="key">for</span> <span class="nam">path_label</span><span class="op">,</span> <span class="nam">structure</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">path_structure</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t837" class="stm mis">            <span class="nam">path_parts</span> <span class="op">=</span> <span class="op">[</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'system_base'</span><span class="op">]</span><span class="op">,</span> <span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="nam">path_label</span><span class="op">]</span><span class="op">)</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t838" class="stm mis">            <span class="key">for</span> <span class="nam">part</span> <span class="key">in</span> <span class="nam">structure</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t839" class="stm mis">                <span class="nam">param_hash</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span> <span class="op">+</span> <span class="str">'.hash'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t840" class="stm mis">                <span class="nam">parameters</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">,</span> <span class="nam">dotted_path</span><span class="op">=</span><span class="nam">part</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t841" class="stm mis">                <span class="nam">path_parts</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">param_hash</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t842" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t843" class="stm mis">                <span class="nam">current_path</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">_join_paths</span><span class="op">(</span><span class="nam">path_parts</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t844" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t845" class="stm mis">                <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">current_path</span><span class="op">)</span> <span class="op">==</span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t846" class="stm mis">                    <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">parameters</span><span class="op">)</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">current_path</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">,</span> <span class="str">'parameters.yaml'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t847" class="pln">                <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t848" class="stm mis">                    <span class="key">for</span> <span class="nam">path_id</span><span class="op">,</span> <span class="nam">path</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">current_path</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t849" class="stm mis">                        <span class="key">if</span> <span class="nam">parameters</span><span class="op">[</span><span class="nam">path_id</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t850" class="stm mis">                            <span class="nam">ParameterContainer</span><span class="op">(</span><span class="nam">parameters</span><span class="op">[</span><span class="nam">path_id</span><span class="op">]</span><span class="op">)</span><span class="op">.</span><span class="nam">save</span><span class="op">(</span><span class="nam">filename</span><span class="op">=</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">path</span><span class="op">,</span> <span class="str">'parameters.yaml'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t851" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t852" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_add_hash_to_main_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t853" class="stm run hide_run">        <span class="key">for</span> <span class="nam">field</span><span class="op">,</span> <span class="nam">params</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t854" class="stm run hide_run">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">params</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t855" class="stm run hide_run">                <span class="key">if</span> <span class="nam">field</span> <span class="key">not</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span> <span class="key">and</span> <span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t856" class="stm run hide_run">                    <span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">[</span><span class="str">'_hash'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_hash</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t857" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t858" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_add_hash_to_method_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t859" class="stm run hide_run">        <span class="key">for</span> <span class="nam">field</span> <span class="key">in</span> <span class="nam">self</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t860" class="stm run hide_run">            <span class="key">if</span> <span class="nam">field</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="str">'_method_parameters'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t861" class="stm run hide_run">                <span class="key">for</span> <span class="nam">key</span><span class="op">,</span> <span class="nam">params</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t862" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">params</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t863" class="stm run hide_run">                        <span class="nam">params</span><span class="op">[</span><span class="str">'_hash'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_hash</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">params</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t864" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t865" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_add_main_hash</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t866" class="stm run hide_run">        <span class="nam">data</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t867" class="stm run hide_run">        <span class="key">for</span> <span class="nam">field</span><span class="op">,</span> <span class="nam">params</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t868" class="stm run hide_run">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">params</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t869" class="stm run hide_run">                <span class="key">if</span> <span class="nam">field</span> <span class="key">not</span> <span class="key">in</span> <span class="nam">self</span><span class="op">.</span><span class="nam">control_sections</span> <span class="key">and</span> <span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t870" class="stm run hide_run">                    <span class="nam">data</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_hash</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t871" class="stm run hide_run">        <span class="nam">self</span><span class="op">[</span><span class="str">'_hash'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_hash</span><span class="op">(</span><span class="nam">data</span><span class="op">=</span><span class="nam">data</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t872" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t873" class="stm run hide_run">    <span class="op">@</span><span class="nam">staticmethod</span><span class="strut">&nbsp;</span></p>
<p id="t874" class="pln">    <span class="key">def</span> <span class="nam">_parse_recipe</span><span class="op">(</span><span class="nam">recipe</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t875" class="pln">        <span class="str">"""Parse feature vector recipe</span><span class="strut">&nbsp;</span></p>
<p id="t876" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t877" class="pln"><span class="str">        Overall format: [block #1];[block #2];[block #3];...</span><span class="strut">&nbsp;</span></p>
<p id="t878" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t879" class="pln"><span class="str">        Block formats:</span><span class="strut">&nbsp;</span></p>
<p id="t880" class="pln"><span class="str">         - [extractor (string)] = full vector</span><span class="strut">&nbsp;</span></p>
<p id="t881" class="pln"><span class="str">         - [extractor (string)]=[start index (int)]-[end index (int)] => default channel 0 and vector [start:end]</span><span class="strut">&nbsp;</span></p>
<p id="t882" class="pln"><span class="str">         - [extractor (string)]=[channel (int)]:[start index (int)]-[end index (int)] => specified channel and vector [start:end]</span><span class="strut">&nbsp;</span></p>
<p id="t883" class="pln"><span class="str">         - [extractor (string)]=1,2,3,4,5 => vector [1,2,3,4,4]</span><span class="strut">&nbsp;</span></p>
<p id="t884" class="pln"><span class="str">         - [extractor (string)]=0 => specified channel and full vector</span><span class="strut">&nbsp;</span></p>
<p id="t885" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t886" class="pln"><span class="str">        Parameters</span><span class="strut">&nbsp;</span></p>
<p id="t887" class="pln"><span class="str">        ----------</span><span class="strut">&nbsp;</span></p>
<p id="t888" class="pln"><span class="str">        recipe : str</span><span class="strut">&nbsp;</span></p>
<p id="t889" class="pln"><span class="str">            Feature recipe</span><span class="strut">&nbsp;</span></p>
<p id="t890" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t891" class="pln"><span class="str">        Returns</span><span class="strut">&nbsp;</span></p>
<p id="t892" class="pln"><span class="str">        -------</span><span class="strut">&nbsp;</span></p>
<p id="t893" class="pln"><span class="str">        data : dict</span><span class="strut">&nbsp;</span></p>
<p id="t894" class="pln"><span class="str">            Feature recipe structure</span><span class="strut">&nbsp;</span></p>
<p id="t895" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t896" class="pln"><span class="str">        """</span><span class="strut">&nbsp;</span></p>
<p id="t897" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t898" class="pln">        <span class="com"># Define delimiters</span><span class="strut">&nbsp;</span></p>
<p id="t899" class="stm run hide_run">        <span class="nam">delimiters</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t900" class="pln">            <span class="str">'block'</span><span class="op">:</span> <span class="str">';'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t901" class="pln">            <span class="str">'detail'</span><span class="op">:</span> <span class="str">'='</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t902" class="pln">            <span class="str">'dimension'</span><span class="op">:</span> <span class="str">':'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t903" class="pln">            <span class="str">'segment'</span><span class="op">:</span> <span class="str">'-'</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t904" class="pln">            <span class="str">'vector'</span><span class="op">:</span> <span class="str">','</span><span class="strut">&nbsp;</span></p>
<p id="t905" class="pln">        <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t906" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t907" class="stm run hide_run">        <span class="nam">data</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t908" class="stm run hide_run">        <span class="nam">labels</span> <span class="op">=</span> <span class="nam">recipe</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">delimiters</span><span class="op">[</span><span class="str">'block'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t909" class="stm run hide_run">        <span class="key">for</span> <span class="nam">label</span> <span class="key">in</span> <span class="nam">labels</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t910" class="stm run hide_run">            <span class="nam">label</span> <span class="op">=</span> <span class="nam">label</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t911" class="stm run hide_run">            <span class="key">if</span> <span class="nam">label</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t912" class="stm run hide_run">                <span class="nam">detail_parts</span> <span class="op">=</span> <span class="nam">label</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">delimiters</span><span class="op">[</span><span class="str">'detail'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t913" class="stm run hide_run">                <span class="nam">method</span> <span class="op">=</span> <span class="nam">detail_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t914" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t915" class="pln">                <span class="com"># Default values, used when only extractor is defined e.g. [extractor (string)]; [extractor (string)]</span><span class="strut">&nbsp;</span></p>
<p id="t916" class="stm run hide_run">                <span class="nam">vector_index_structure</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t917" class="pln">                    <span class="str">'channel'</span><span class="op">:</span> <span class="num">0</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t918" class="pln">                    <span class="str">'selection'</span><span class="op">:</span> <span class="nam">False</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t919" class="pln">                    <span class="str">'full'</span><span class="op">:</span> <span class="nam">True</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t920" class="pln">                <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t921" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t922" class="pln">                <span class="com"># Inspect recipe further</span><span class="strut">&nbsp;</span></p>
<p id="t923" class="stm run hide_run">                <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">detail_parts</span><span class="op">)</span> <span class="op">==</span> <span class="num">2</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t924" class="stm run hide_run">                    <span class="nam">main_index_parts</span> <span class="op">=</span> <span class="nam">detail_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">delimiters</span><span class="op">[</span><span class="str">'dimension'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t925" class="stm run hide_run">                    <span class="nam">vector_indexing_string</span> <span class="op">=</span> <span class="nam">detail_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t926" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t927" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">main_index_parts</span><span class="op">)</span> <span class="op">></span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t928" class="pln">                        <span class="com"># Channel has been defined,</span><span class="strut">&nbsp;</span></p>
<p id="t929" class="pln">                        <span class="com"># e.g. [extractor (string)]=[channel (int)]:[start index (int)]-[end index (int)]</span><span class="strut">&nbsp;</span></p>
<p id="t930" class="stm run hide_run">                        <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'channel'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">main_index_parts</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t931" class="stm run hide_run">                        <span class="nam">vector_indexing_string</span> <span class="op">=</span> <span class="nam">main_index_parts</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t932" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t933" class="stm run hide_run">                    <span class="nam">vector_indexing</span> <span class="op">=</span> <span class="nam">vector_indexing_string</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">delimiters</span><span class="op">[</span><span class="str">'segment'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t934" class="stm run hide_run">                    <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">vector_indexing</span><span class="op">)</span> <span class="op">></span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t935" class="stm run hide_run">                        <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'start'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">vector_indexing</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t936" class="stm run hide_run">                        <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'end'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">vector_indexing</span><span class="op">[</span><span class="num">1</span><span class="op">]</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op">+</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t937" class="stm run hide_run">                        <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'full'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t938" class="stm run hide_run">                        <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'selection'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t939" class="pln">                    <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t940" class="stm run hide_run">                        <span class="nam">vector_indexing</span> <span class="op">=</span> <span class="nam">vector_indexing_string</span><span class="op">.</span><span class="nam">split</span><span class="op">(</span><span class="nam">delimiters</span><span class="op">[</span><span class="str">'vector'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t941" class="stm run hide_run">                        <span class="key">if</span> <span class="nam">len</span><span class="op">(</span><span class="nam">vector_indexing</span><span class="op">)</span> <span class="op">></span> <span class="num">1</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t942" class="stm run hide_run">                            <span class="nam">a</span> <span class="op">=</span> <span class="nam">list</span><span class="op">(</span><span class="nam">map</span><span class="op">(</span><span class="nam">int</span><span class="op">,</span> <span class="nam">vector_indexing</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t943" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'full'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t944" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'selection'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">True</span><span class="strut">&nbsp;</span></p>
<p id="t945" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'vector'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">a</span><span class="strut">&nbsp;</span></p>
<p id="t946" class="pln">                        <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t947" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'channel'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">vector_indexing</span><span class="op">[</span><span class="num">0</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t948" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'full'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">True</span><span class="strut">&nbsp;</span></p>
<p id="t949" class="stm run hide_run">                            <span class="nam">vector_index_structure</span><span class="op">[</span><span class="str">'selection'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t950" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t951" class="stm run hide_run">                    <span class="nam">current_data</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t952" class="pln">                        <span class="str">'method'</span><span class="op">:</span> <span class="nam">method</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t953" class="pln">                        <span class="str">'vector-index'</span><span class="op">:</span> <span class="nam">vector_index_structure</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t954" class="pln">                        <span class="com"># 'parameter-path': 'feature.params.' + extractor</span><span class="strut">&nbsp;</span></p>
<p id="t955" class="pln">                    <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t956" class="pln">                <span class="key">else</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t957" class="stm run hide_run">                    <span class="nam">current_data</span> <span class="op">=</span> <span class="op">{</span><span class="strut">&nbsp;</span></p>
<p id="t958" class="pln">                        <span class="str">'method'</span><span class="op">:</span> <span class="nam">method</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t959" class="pln">                    <span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t960" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t961" class="stm run hide_run">                <span class="nam">data</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="nam">current_data</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t962" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t963" class="stm run hide_run">        <span class="key">return</span> <span class="nam">data</span><span class="strut">&nbsp;</span></p>
<p id="t964" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t965" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_after_load</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">to_return</span><span class="op">=</span><span class="nam">None</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t966" class="stm run hide_run">        <span class="nam">self</span><span class="op">.</span><span class="nam">processed</span> <span class="op">=</span> <span class="nam">False</span><span class="strut">&nbsp;</span></p>
<p id="t967" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t968" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_clean_unused_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t969" class="stm mis">        <span class="key">for</span> <span class="nam">field</span> <span class="key">in</span> <span class="nam">list</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">keys</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t970" class="stm mis">            <span class="key">if</span> <span class="nam">field</span><span class="op">.</span><span class="nam">endswith</span><span class="op">(</span><span class="str">'_method_parameters'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t971" class="stm mis">                <span class="key">del</span> <span class="nam">self</span><span class="op">[</span><span class="nam">field</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t972" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t973" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_convert_main_level_to_dotted</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t974" class="stm run hide_run">        <span class="key">for</span> <span class="nam">key</span><span class="op">,</span> <span class="nam">item</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t975" class="stm run hide_run">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">item</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span> <span class="key">and</span> <span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span> <span class="key">in</span> <span class="nam">item</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t976" class="stm run hide_run">                <span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">]</span> <span class="op">=</span> <span class="nam">DottedDict</span><span class="op">(</span><span class="nam">item</span><span class="op">[</span><span class="nam">self</span><span class="op">.</span><span class="nam">magic_field</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t977" class="stm run hide_run">            <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">item</span><span class="op">,</span> <span class="nam">dict</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t978" class="stm run hide_run">                <span class="nam">self</span><span class="op">[</span><span class="nam">key</span><span class="op">]</span> <span class="op">=</span> <span class="nam">DottedDict</span><span class="op">(</span><span class="nam">item</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t979" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t980" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_logging</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t981" class="stm run hide_run">        <span class="key">for</span> <span class="nam">handler_name</span><span class="op">,</span> <span class="nam">handler_data</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'logging'</span><span class="op">]</span><span class="op">[</span><span class="str">'parameters'</span><span class="op">]</span><span class="op">[</span><span class="str">'handlers'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t982" class="stm run hide_run">            <span class="key">if</span> <span class="str">'filename'</span> <span class="key">in</span> <span class="nam">handler_data</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t983" class="stm run hide_run">                <span class="nam">handler_data</span><span class="op">[</span><span class="str">'filename'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'path'</span><span class="op">]</span><span class="op">[</span><span class="str">'logs'</span><span class="op">]</span><span class="op">,</span> <span class="nam">handler_data</span><span class="op">[</span><span class="str">'filename'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t984" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t985" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_feature_extractor</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t986" class="stm run hide_run">        <span class="key">if</span> <span class="op">(</span><span class="str">'recipe'</span> <span class="key">not</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span> <span class="key">and</span> <span class="str">'feature_stacker'</span> <span class="key">in</span> <span class="nam">self</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t987" class="pln">           <span class="str">'stacking_recipe'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_stacker'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t988" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t989" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">[</span><span class="str">'recipe'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_stacker.stacking_recipe'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t990" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t991" class="stm run hide_run">        <span class="key">if</span> <span class="str">'win_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span> <span class="key">and</span> <span class="str">'fs'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t992" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">[</span><span class="str">'win_length_samples'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.win_length_seconds'</span><span class="op">)</span> <span class="op">*</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.fs'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t993" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t994" class="stm run hide_run">        <span class="key">if</span> <span class="str">'hop_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span> <span class="key">and</span> <span class="str">'fs'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t995" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">[</span><span class="str">'hop_length_samples'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_seconds'</span><span class="op">)</span> <span class="op">*</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.fs'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t996" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t997" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_feature_normalizer</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t998" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t999" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_normalizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'scene_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1000" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1001" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1002" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_normalizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_scenes'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1003" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1004" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1005" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_normalizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'event_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1006" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1007" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1008" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_normalizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_events'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1009" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1010" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_feature_extractor_method_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1011" class="pln">        <span class="com"># Change None feature parameter sections into empty dicts</span><span class="strut">&nbsp;</span></p>
<p id="t1012" class="stm run hide_run">        <span class="key">for</span> <span class="nam">method</span> <span class="key">in</span> <span class="nam">list</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor_method_parameters'</span><span class="op">]</span><span class="op">.</span><span class="nam">keys</span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1013" class="stm run hide_run">            <span class="key">if</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">method</span><span class="op">]</span> <span class="key">is</span> <span class="nam">None</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1014" class="stm mis">                <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor_method_parameters'</span><span class="op">]</span><span class="op">[</span><span class="nam">method</span><span class="op">]</span> <span class="op">=</span> <span class="op">{</span><span class="op">}</span><span class="strut">&nbsp;</span></p>
<p id="t1015" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1016" class="stm run hide_run">        <span class="key">for</span> <span class="nam">method</span><span class="op">,</span> <span class="nam">data</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor_method_parameters'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1017" class="stm run hide_run">            <span class="nam">data</span><span class="op">[</span><span class="str">'method'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">method</span><span class="strut">&nbsp;</span></p>
<p id="t1018" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1019" class="pln">            <span class="com"># Copy general parameters</span><span class="strut">&nbsp;</span></p>
<p id="t1020" class="stm run hide_run">            <span class="key">if</span> <span class="str">'fs'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1021" class="stm run hide_run">                <span class="nam">data</span><span class="op">[</span><span class="str">'fs'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">[</span><span class="str">'fs'</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t1022" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1023" class="stm run hide_run">            <span class="key">if</span> <span class="str">'win_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1024" class="stm run hide_run">                <span class="nam">data</span><span class="op">[</span><span class="str">'win_length_seconds'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.win_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1025" class="stm run hide_run">            <span class="key">if</span> <span class="str">'win_length_samples'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1026" class="stm run hide_run">                <span class="nam">data</span><span class="op">[</span><span class="str">'win_length_samples'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.win_length_samples'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1027" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1028" class="stm run hide_run">            <span class="key">if</span> <span class="str">'hop_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1029" class="stm run hide_run">                <span class="nam">data</span><span class="op">[</span><span class="str">'hop_length_seconds'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1030" class="stm run hide_run">            <span class="key">if</span> <span class="str">'hop_length_samples'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1031" class="stm run hide_run">                <span class="nam">data</span><span class="op">[</span><span class="str">'hop_length_samples'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_samples'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1032" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1033" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_feature_aggregator</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1034" class="stm run hide_run">        <span class="key">if</span> <span class="str">'win_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_aggregator'</span><span class="op">]</span> <span class="key">and</span> <span class="str">'win_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1035" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_aggregator'</span><span class="op">]</span><span class="op">[</span><span class="str">'win_length_frames'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">numpy</span><span class="op">.</span><span class="nam">ceil</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_aggregator.win_length_seconds'</span><span class="op">)</span> <span class="op">/</span> <span class="nam">float</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1036" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1037" class="stm run hide_run">        <span class="key">if</span> <span class="str">'hop_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_aggregator'</span><span class="op">]</span> <span class="key">and</span> <span class="str">'win_length_seconds'</span> <span class="key">in</span> <span class="nam">self</span><span class="op">[</span><span class="str">'feature_extractor'</span><span class="op">]</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1038" class="stm run hide_run">            <span class="nam">self</span><span class="op">[</span><span class="str">'feature_aggregator'</span><span class="op">]</span><span class="op">[</span><span class="str">'hop_length_frames'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">numpy</span><span class="op">.</span><span class="nam">ceil</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_aggregator.hop_length_seconds'</span><span class="op">)</span> <span class="op">/</span> <span class="nam">float</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1039" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1040" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_learner</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1041" class="stm run hide_run">        <span class="nam">win_length_seconds</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.win_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1042" class="stm run hide_run">        <span class="nam">hop_length_seconds</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_extractor.hop_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1043" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1044" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_aggregator.enable'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1045" class="stm run hide_run">            <span class="nam">win_length_seconds</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_aggregator.win_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1046" class="stm run hide_run">            <span class="nam">hop_length_seconds</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'feature_aggregator.hop_length_seconds'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1047" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1048" class="stm run hide_run">        <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'win_length_seconds'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">float</span><span class="op">(</span><span class="nam">win_length_seconds</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1049" class="stm run hide_run">        <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'hop_length_seconds'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">float</span><span class="op">(</span><span class="nam">hop_length_seconds</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1050" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1051" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1052" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'scene_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1053" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1054" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1055" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_scenes'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1056" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1057" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1058" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'event_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1059" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1060" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1061" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'learner'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_events'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1062" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1063" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_learner_method_parameters</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1064" class="stm run hide_run">        <span class="key">for</span> <span class="nam">method</span><span class="op">,</span> <span class="nam">data</span> <span class="key">in</span> <span class="nam">iteritems</span><span class="op">(</span><span class="nam">self</span><span class="op">[</span><span class="str">'learner_method_parameters'</span><span class="op">]</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1065" class="stm run hide_run">            <span class="nam">data</span> <span class="op">=</span> <span class="nam">DottedDict</span><span class="op">(</span><span class="nam">data</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1066" class="stm run hide_run">            <span class="key">if</span> <span class="nam">data</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'training.epoch_processing.enable'</span><span class="op">)</span> <span class="key">and</span> <span class="key">not</span> <span class="nam">data</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'training.epoch_processing.recognizer'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1067" class="stm mis">                <span class="nam">data</span><span class="op">[</span><span class="str">'training'</span><span class="op">]</span><span class="op">[</span><span class="str">'epoch_processing'</span><span class="op">]</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1068" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1069" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_recognizer</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1070" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1071" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'scene_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1072" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1073" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1074" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_scenes'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1075" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1076" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1077" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'event_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1078" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1079" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1080" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_events'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1081" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1082" class="stm run hide_run">        <span class="key">if</span> <span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.frame_accumulation.enable'</span><span class="op">)</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t1083" class="pln">           <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.frame_accumulation.window_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1084" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1085" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'frame_accumulation'</span><span class="op">]</span><span class="op">[</span><span class="str">'window_length_frames'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.frame_accumulation.window_length_seconds'</span><span class="op">)</span><span class="op">/</span><span class="nam">float</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'learner.hop_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1086" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1087" class="stm run hide_run">        <span class="key">if</span> <span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.event_activity_processing.enable'</span><span class="op">)</span> <span class="key">and</span><span class="strut">&nbsp;</span></p>
<p id="t1088" class="pln">           <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.event_activity_processing.window_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1089" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1090" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'recognizer'</span><span class="op">]</span><span class="op">[</span><span class="str">'event_activity_processing'</span><span class="op">]</span><span class="op">[</span><span class="str">'window_length_frames'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">int</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'recognizer.event_activity_processing.window_length_seconds'</span><span class="op">)</span><span class="op">/</span><span class="nam">float</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'learner.hop_length_seconds'</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1091" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1092" class="stm run hide_run">    <span class="key">def</span> <span class="nam">_process_evaluator</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1093" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1094" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'evaluator'</span><span class="op">]</span><span class="op">[</span><span class="str">'scene_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.scene_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1095" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1096" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1097" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'evaluator'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_scenes'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_scenes'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1098" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1099" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1100" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'evaluator'</span><span class="op">]</span><span class="op">[</span><span class="str">'event_handling'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.event_handling'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1101" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t1102" class="stm run hide_run">        <span class="key">if</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t1103" class="stm mis">            <span class="nam">self</span><span class="op">[</span><span class="str">'evaluator'</span><span class="op">]</span><span class="op">[</span><span class="str">'active_events'</span><span class="op">]</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">get_path</span><span class="op">(</span><span class="str">'general.active_events'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t1104" class="pln"><span class="strut">&nbsp;</span></p>

            </td>
        </tr>
    </table>
</div>

<div id="footer">
    <div class="content">
        <p>
            <a class="nav" href="index.html">&#xab; index</a> &nbsp; &nbsp; <a class="nav" href="https://coverage.readthedocs.io">coverage.py v4.3.4</a>,
            created at 2017-11-20 21:55
        </p>
    </div>
</div>

</body>
</html>
